reduce public surface area