new classes, many updates, still very incomplete