some project refactoring