Added parameterized constructor and assign() function