starting actual solving code