some functions might be useless?

not sure..