added struct, constructor and parser interfaces