This should kinda mostly work