finish sa_obj refactor constructor