added instruction decoder