Bueno, como pedías una pista, eso es lo que te daré

Lee el mensaje de error. Comprendelo, y si no sabes inglés usa algún traductor como el de google, aunque no valgan de nada, para el error que te está dando la traducción te servirá para descubrir el problema. Además el error te indica una línea: revísala.
Se dice mucho por aquí pero oye, esto de leer el error funciona que no veas para comprender cual es el error (sí, lo sé, es evidente, pero has posteado pidiendo precisamente eso...).
Y respecto a lo segundo, suponiendo que los métodos de la clase den los resultados esperados, es correcto. Aunque te aconsejo que te ahorres tantas líneas usando el operador .=