Rewrote tag system to be used in its own class