add but not completed: switch