initial commit to support mixed and discordant reads (N.B. they are still not handled completely correctly!)