initial commit: model and runtime