This is a proof of concept, and will be improved and stuff. Also its broken but I generally like it so here it is.