lots of work
fix conflicts