base framework finished