Some rough edges and a few TODOs, but I need this to be pushed remotely.