They are boilerplate, they spread logic in multiple places and last but not least, they make testing very cumbersome.