"HOw can you sustain 15 miles at 100% sprints though? I bet at 100% youd give out at the 2nd mile? I have to try this when I get better."
You go out easy for 10 miles to warm up, 50-60%. Once you're ready, a 100% all out sprint, will last maybe 30-45 seconds. Spin up to about 130rpms or so and shift. Relax for 5 minutes to recover. Then do another sprint. Start out with 3 sprints, then go home, about 15 miles. This will improve your average speed tremendously if leg-strength is your limiting factor.
If aerobic capacity limits you, then intervals would help too. I like pyramid sets. Do 1 minute interval at 90-95% effort so that your heart-rate climbs steadily from 60% of max-HR to 100% by the end of that minute. Relax for 5 minutes to recover. Then do 2 minutes at 85-90% effort to go from 60% max-HR to 100% by the end of two minutes, recover, repeat, etc. I like do a 1-2-3-2-1 pyramid set, sometimes 1-2-3-5-3-2-1.
Then add in one day of endurance, 3-5 hours, and you'd be improving about as fast as possible. That 20mph average will be 24mph in 1 month, 27mph in 6-months.
Another thing I'll do sometimes if I see a guy all decked out going on a ride, I'll ask him what is workout is that day, maybe I'll join in. I know the schedule of all the clubs around here, so if I want a certain kind of workout, I'll just pick the ride that's doing it. Sometimes, I just show up in T-shirts, beach shorts , and tennis-shoes for fun...