Seems that this is getting a bit out of control...

May consider opening a ticket to at least split in several methods, one per use case