sa_obj refactor constructor