moved callbacks to start method to increase reusability