laying the ground for an internal dsl