a real parser for tags