added gitignore + some refactoring