Rewrite for hypercheese
Fix first round of bugs