pulled functions out of New()