Finally done, still not satisfied. :(