basic framework complete