rewrite phynuc in detaille