fixes for __add__ __iadd__ and clean code