using some helper methods (step 16) done