Issue #40; Issue #44: first stab at UserOperation class