Tagging

Merge in the work of @bmuscede and @nathanychow on the Tagging system.
Use 2 (not 8) spaces for indentation.