Squashed commit of ill development

This is a base level commit of the ill as developed at HPA
and the subsequent work in progress

It was developed against 3.10.x the work in progress
decoupled it from core code where possible so this will be
the starting point for future development