Adding case classes to remove 'new' keyword