added some basic framework