Cleaning up interfaces by having separate Leaf and Containing types.
Module export cleanup