:D, function overloaded by useful trick