More advanced options, better calculation and validation.