Added classes, added functionality
changed some essentials