Faltan un par de cosas y excepciones.
Puliendo errores. Ignorad que este comentado