#eep this turned out bad :(