[x] no switch cases inside classes, only on pipeline or configuration level
[ ] self.critic_clock into Critic class and, in general, all class-related field put in classes (with corresp. renaming)
[ ] Polish model signatures
[ ] fix setters, use update instead. Remove _weights! rename cache_cur_state to back_up. Remove setter. model.update to call back_up. call with use_fixed_weights (rename use_old_weights) calls with backed up model with ITS weights. Rename cache to backup. So, call with use_old_weights is equivalent to backup.forward(argin).