Got all the semantics in there, might not work I dunno