make constructor params optional