basic framework with container