switched from GPLv3 to Apache 2.0 licensing model; improved module load time by more than 50% by changing how type extensions are created; added helper functions to define type extensions; added snippets to help with logic that must be shared but that is required even by this module; fixed defect in array slice method; added a lot of comments to type extensions