Tonnes of changes

Cant list them all because I’ve actually forgot most of them, going to
try and aim for the snippet function to be finished tomorrow