redesign cache and cope with gene and annotation duplication