basic framework setup