Special Pickup Handling

Hopefully improved special handling, should make the code easier to
follow at any rate, still needs full testing