add tests; break germlin caller into components; separate read loading