added lots of parsing