reduced constructor