refactor user events
introduce demo