used the EO_weak keyword instead of __weak