rem & fix & add some codes