finished mvp with testing