Refactoring
Closed #19