changed private fields to protected to avoid eclipse warnings: "access to enclosing field is emulated by a synthetic accessor method"