moved BinarySwitch to separate file, removed useless dependancies and yet another refactoring to come, we need to move TinyController, should be somewhere on the top