added constructor for more efficient data forwarding
some data forwarding implemented along w/corresponding tests
assign via forwarding
found error in forwarding version of assign revealed by unit test