refactoring
address operations and property testing for alloc
coverting some things to metafunctions
coverting some things to metafunctions
lots of cleanup