lots of rough changes