Final look. Code needs refactoring