implemented first thing first switch