updated classes, permissions, probably has errors