update readme and add more comments