not sure if all the extra overhead of the DSL code is worth it