Full working, lacks major refactoring and panache