Improve Operation struct semantics
Improve Operation struct semantics

It's better to use a single operation struct, with a 'type' field,
to know exactly what kind of operation we're referring to.

Ref #79

jbrodriguez/unbalance,jbrodriguez/unbalance,jbrodriguez/unbalance,jbrodriguez/unbalance