This might be a little bit faster (need to rename the variables & squash)