Added some comments, changed this.tostring for machines, and maybe some other random sh*t