added default constructor and assignment op