working mvp, all tests passing