added contains tag, adding tag, and removing tag functions
first working version with tests