[*] refactoring
[*] invalid code
[*] others type of location