implemented tag parsing and re-authored all tests - all now passing