add dsl and implicit conversion