sa_obj refactor