replace method_exists by is_callable