added some bonus framework