refactored initializers