Final Version

Final version as completed in 2011