initial classes and setup