* Finish refactor