added new classes, improved old