put the public before the protected block