Got a visual sort of going on, needs a lot more work and restructing to get it right though