base framework