finish refactoring and start to remove not nessessary methods