initial work on source DSL