Интереует, как быть в такой ситуации. Быть может у меня подход неверный?

Код:
import Checkbox;
import mx.utils.Delegate;
class OptionsWindow extends MovieCLip {
private chk1:CheckBox;
private chk2:CheckBox;
public function OptionsWIndow() {
chk1.onPress = Delegate.create(chk1, chek1Pressed);
chk2.onPress = Delegate.create(chk2, chek2Pressed);
}
public function chek1Pressed() {
this.doAction(true);
}
public function chek2Pressed() {
this.doAction(false);
}
}
Во-первых, интересует почему нельзя что бы было как сейчас написано private chk1:CheckBox; а должно быть public chk1:CheckBox; ?
Ведь на сколько я знаю, с делегейтом можно к прайват свойствам обращаться.
Второй вопрос: почему ругается компилятор на "doAction" что мол нет такой функции? На самом деле она есть и описана в CheckBox классе. Как быть тут?