Added some speed improvements and alternate methods.