replace getValue and implicit conversion with operator()