more ruby DSL ideas