flexible parser structure