bumped scala version & enum => ADT refactoring