bug mostly fixed, need to get copy constructor for autorelease setup properly for when it's actually called, icc, gcc and clang all treat the const of a copy constructor differently for modifying the param value