nei blocchi successivi c'è molto codice duplicato, forse puoi estrarre qualcosa in una classe che condivide le proprietà e poi fare le modifiche soltanto nei blocchi che ti interessano