updated classes, updated interfaces