This started as my interns' project last 2013.