you can return new instances directly and remove the `break`