improvements; refactoring; working well;