try to rewrite some code