hardremoved autogenerated code