moved spirit out of header file reduce compile time
add more parsing functionality