make constructor protected