refactoring
adding rest error handling
refactoring directories
more refactoring
remove unneeded gitignore
massive refactoring