A mix between cron jobs and event listeners, this is not going to be light work and might involve a fair bit of restructuring