Complete working Parser