Major refactoring
refactoring