tidy up of extension semantics
save point - inject requires new extend process
revised extend process for nesting
added nested extension test
ioc inject groundwork
ioc inject groundwork