better with tests