subread extraction refactor