modularize sa_obj