Source code

Use it as you like, it's not very neat so if you don't understand something you can ask me.