First steps converting container concepts to free functions. Not tested, not complete. Problems also remain getting macros to nest.