bunches of changes... deal with it
  read the code its not very complex