big refactoring and new look