refactoring into multiple files
refactor
more consistent naming, added the whole bootstrap