continued working out bugs, added copy constructor to cpi class