semi-private!