Lots of changes, improved API, reduced cheating.