an easy but powerful parser