just the basic framework