big refactor to hide my nubness