split to several files, added gitignore