move top-level stuff into Flashbang.core