major changes, improvements, and fixes by Jim Rezn8d Lee & SeH