Handle zeroth position as position 1.
Implement basic interface layering;

This allows the placing of interfaces which overlap one another. Output will also render the interfaces starting from lowest layer upwards; larger numbers are lighter and float to the top.
Add tests and fix whitespace.
Add test for Compositor handling String only input.
Simplify layers and use object in interface.
Use *Repository.create instead of delegating.
Move DSL method to *Repository.
Update tests.
Convert repositories to modules and remove duplicate method.
Array#map produces [[[[]]]], should be [[]] (use #each instead).
Convert Input;

Input only contains behaviour, and should not be instantiated.
Add ‘yajl-ruby’ and ‘virtus’ for composition magic to follow.