separate concern of initialization