modified useless functions