this function is unnecessarily embedded here
Since it is so long it should be normal object method