Code written for the application process of CODE2040 2015 fellowship.