refactor the constructObject helper to use soc