AS3 initial commit
incremental commit to save refactoring state
Functional an Imperative implementations, refactored tests.