refactor user stuff to a role, add graphics/gui