External W25Q32 SPI memory flash for ATMega328

Actually bootloader read, store and jump to address where sketch begins. So what I need is something like that. Maybe creating a special kind of bootloader that reads specific portions of code from external flash, store it in internal avr memory and jumper to its begin... Seams to be easy but I do not have any idea about how to implement this...