initial skeleton framework