another pass at search DSL