add: base framework code