added some classes; requires testing