added several new support classes