It's not clear to me what additional answers you are looking for, but given the size of your transaction, a $4 fee is not unexpected.
One of the drawbacks of the 1 MB limit, and the rise in transaction fees that it has caused, is that a large portion of the bitcoin supply is now effectively unspendable. When looking at your transaction, I see several outputs whose values are less than the cost to spend them.
I still don't understand, how can i limit the size of data generated or size of transaction, prevent future occurrence or anything that I'll understand in simple terms. You're assuming i can interpret the figures and terminologies. How do i raise the limits from 1Mb? (i wasn't even aware there's a limit). I'm thinking of having another wallet entirely if this one will continue to generate high fees in the course of usage