moved and slightly refactored Tag