Special thanks to http://www.therealjoshua.com/2011/11/android-architecture-part-1-intro/