add onStart trigger event and randomstart feature refactor