Because no vendor has ever said run iptables/ipchains/ipfw to prevent exploitation of a bug in Linux 2.0/2.2, Freebsd 4.x, etc, right?
You may not be the intended audience. If you have to carry a bare bones phone because (for example) you have one provided by an employer, or you cant have a camera (security reasons), or you don't want to upgrade and lose your ancient awesome phone plan, carrying an mp3 player that also doubles as a browser / calendar / email client / GPS / everything else is convenient and awesome.
If you just want it to play music, it's way too expensive and a waste of money.
Remember: not everyone just wants music.
If your bike cost you a couple hundred million dollars, you'd consider yourself a competitor too.
Personally, I put the blame less on fundamentalists and more on decreasing importance of education in the home.
There are dozens of examples (single mothers with multiple jobs and multiple kids who just don't have time to parent, illegal immigrants raising kids that accept no-skill jobs as manual labor as sufficient for a lifetime instead of working to get an education and work in a skilled field), but the basic problem is that kids don't believe that they need a real education to live.
The problems with K-12 education go WAY BEYOND mathematics.
4 coders ignores the fun parts defining requirements, assigning tasks, testing, QA, regression testing, all the fun things that the first group neglected that caused it to be unfinished.
Sometimes youngsters look at a task and go "That's easy, I could totally do that in 2-3 months". Then there are people who have done it who stand back and laugh at them for being naive.
I've noticed several design suggestions in your code.