add inherit method and modify extend method internal workflow. API same