@kenren: I'm doing this just for fun so you don't have to use it but here it is anyways