add function overloaded