* global refactoring