added basic classes and guards