added "optional" to dsl