big performance boost, minor fixes, more testing