Initialize at the bottom.
Changed all private methods to protected.