Maybe we should rename this to protocol instead of scheme?