created classes and basic behaviour