Out of the scope of this review, but do you think we would benefit from splitting this class into specialized classes ?