added a basic framework