Converted tags to be full-fledged components.
Added comments and 'defcomponent' now uses maps.