much more tasks and refactoring