http://stackoverflow.com/questions/860339/difference-between-private-public-and-protected-inheritance