Did a bit of work... gonna clean it up soon