start logic