Basically works, time to add 'AI' and clean stuff up