refactor ui, added contact generation, reset