Huge update with many changes. Have fun