added the scheme argument