Work in progress

Put a lot of code in now, for reference, nothings working yet at all.