input checks
recurrence base class