use implicit conversion to simplify dsl