make instructions use swithc case instead of reflection