make all internal structures unexported