basic class and exceptions, some changes to gitignore
tiny changes before publishing