У тебя много где модификатор видимости - protected. Зачем? Ты классы проектируешь для последующего наследования?