finished mvp of functionality