I'd been stuck at 16:30-17:00 for a long time. Last fall I stepped up my training and got down to 15:40 as a result. Below is what I built up to. Bear in mind not every week was perfect like this. But if you can, do this.
Mon AM - 30 min jog easy
Mon PM - 30 min jog warmup, stretching, 6x100 strides with 100 jogs between each, 2 or 3 miles of VO2 max work, 20 min jog cooldown
Tue AM - no run
Tue PM - 70 min easy (medium-long run)
Wed AM - 45 minute easy run
Wed PM - no run
Thu AM - 30 min jog easy
Thu PM - 30 min jog warmup, stretching, 6x100 strides with 100 jogs between each, either 4 mile tempo or 5 mile fartlek, 20 min jog cooldown
Fri AM - 30 min jog easy
Fri PM - 30 min jog warmup, stretching, 8x100 strides with 100 jogs between each, 4x60 meter accelerations (last 10 meters at top relaxed speed), 4x40 meter all-out sprints (relaxed), 20 min cooldown (speed maintenance day)
Sat AM - 90 minute long run
Sat PM - no run
Sun - off
VO2 max workouts would either be run at 3k or 5k race pace effort. If it was 3k pace, I would do 2 miles worth of repeats. So, 10x300. The next week it would be 5k race pace, and I would do 3 miles worth of work. So, 12x400. As the season progresses you keep the volume the same and the pace the same, but the repeats get longer. 3k paced workouts might go 8x400, then 5x600. 4x800 was the longest I reached - 3x1000 would be pretty tough. 5k pace work will progress to 6x800, then 5x1000. You could go 3x1600 but that's pretty stressful.
For tempo runs I like to get faster each mile. The first mile is manageable, like 6:45, then 6:30, 6:15, 6:00. The whole thing averages 6:22 in that case. Gradually get faster as the season progresses.
Fartleks I like to do on the track, 800 "off" then 800 "on", and make the off and on segments 1 minute per mile apart. So, the first 800 is 3:30 (7 min pace), then the next is 3:00 (6 min pace), then 3:30, then 3:00, etc. That's a 5 mile run in 32:30 and it feels pretty comfortable. You can slowly make this faster too.
Use whatever speeds work for you. I'm more of an 800 guy so I'm weak aerobically, which is why 6:00 pace works for me as a tempo run.
Summary: Doubles where possible, 1 VO2 max workout, 1 medium-long run, 1 easy day, 1 tempo or fartlek, 1 speed maintenance day, 1 long run, 1 day off, longer warmups and cooldowns than you're used to