este não é daquelas casos que este método está demasiado grande?