move version-specific dsl behavior to version class