add a new cons implementation with assignment operation