Added BootLoader and refactoring