initial framework