My output is correct, but I can't resolve all the conditions. Maybe I've been staring at this too long, can anyone point out my failure?