rearranging precondition check code for splitting