simplified constructor implementation