make object initialization more uniform