Added stages 3 and 4. timezone support and some validation.