still refactoring and resolve TODO in utils