completes MVP, ready for refactoring