add some scheme methods from yinwang