#8 finished refactoring but it does not build