[INTERNAL] refactoring base