something works, but this isn't the best way to do it