a bit of cleaning up, still thinking if the bubble isn't a better idea
more of a function creator