set properties visibility public for backward compatibility
set visibility protected in order to be accessed by child classes