Fix issue #16: Replace eval() with call_user_func()