moved the initialisation to init so that the delegates can be changd