added some framework