refactor, support multiple reader types (preparing for 13mhz)