remove magic from constructor; make sure VariableOperatnds return values