TODO:
    - convenience subs: shared, starred, star, unstar
    - consider using Test::Mock::LWP for testing
