First attempt to create a DSL
Make method_missing clearer for the intentions.
Remove duplication and handles invalid method calls.
Implement tests for Scales DSL