initial logic