completed an MVP version. needs improvement