use class name to limit the type of function parameters and try to use autoload