More progress
Refactoring