puts added for precondition