Finished switches (not tested yet)

Switches have been ended finally, they can opperate with multiple types
and can be modified using events.