change order to put public first, then protected then private methods