cleaned up functionality and ux