why are you using public attributes instead of using delegates?