initial validation work for step 1, logic done