got away with (almost) no obj/runtime - looks much easier now