only require used tags to avoid circular dependency within modules