equation struct