WIP cleanup and light abstraction