create context class
add register and lookup in context
implement simple dependency resolution
introduce 3rd model
implement composite dependency resolution
refactor spec
refactor spec
implement prototype strategy