Improves date management and defensive programming

getAgeDivision now fully works (but isn't defensive).
Other areas gain parameter checks.