correction a small mistake (methods -> self)
more comments inside the code