* use extend func