constructor provided