refactor and + unit tests