basic recurrence functinality implemented, needs lots of work