added gitignore, separated classes logic