generic struct arrays
interface cfunc
structs in structs are completely broken

how best to reference sub struct, was writing myself into corner.
asserts in place - need to rethink, reduce duplicate code tidy up and
find the correct solution.  Alarm bells kept ringing as I typed
fixed using refs to structs in structs

big tidy up and removal of duplicate code :)