added tag functionality, all tests passed