refactoring; tag support