I think this could easily be ported to Carbon.