still refactoring
added utils