Add enchanting and restructure a lot of the code