updated classes and example