added new classes for scope and types