First Commit - Solution completed but requires refactoring