export the abstract functions more dynamically.