add loader
bug fixed
refactoring