Compilable version, but still not work.