moved some instance variables into protected properties