Why do you use Map to store tags? Use OOP design