class AbstractGraphTemplate implements GraphTemplate {

    @Override
    public <T, ID> Optional<T> find(ID idValue) {
        requireNonNull(idValue, "id is required");
        Optional<Vertex> vertex = getTraversal().V(idValue).tryNext();
        return vertex.map(getConverter()::toEntity);
    }

}