some useless codes