moved protected method to bottom