switched switch for given + fixed 1 bug
added some cases