broke up tests and code