messing around with virtual/public/protected/private