Draft working copy: Added all features, should be working fine, but
needs checking.