the variable names could be expanded to make more sense *holds my hands up*