add some better comments and update readme