@AviBueno, it seems to me that you force a very different complex logic on a very simple method, I believe you better implement your own method in your own class.