reduce code surface