refactoring + better tests