improved scheme interface