some possible micro-optimizations
start adding tests to test discrete components