multi purpose parser