Updated: 1st version done.