fixed signature for copy-assignment
fixed constructors and implemented copy-assignment
formatting