Refactor Diver a bit