Tests & Refactoring complete