changed some constructor visibilities to package private