some functions removed