broke up build system and tests