some refactoring and project added