added support for function overloads