Major refactoring
Update files