Added support for overloading and overriding functions