I don't want users call those methods, so I override those function and make them be protected.