add tests, remove unnecessary requires