Ported the big part. Details left, but details are the devil. :)