some basic classes, ideas