sort of done, just need to fix the visuals