final and case doesn't work completely i think