construct basic framework