All tasks from #1 are fixed and refactored