[+] refactoring