third constructor