basic framework works