added .target to gitignore
added .cache to gitignore
Changed trait to sealed trait