DRY'd up ma shit
Finished implementing has one through