#11 currently doesn't fully work (note: not my finest work, I wrote this sleep-deprived) I need to push for other changes