pulls initialization methods out into smaller methods