Updates and refactoring
Updates and refactoring