Reorganize functions
Add inheritance for ExternalMethodClass