use protocol-agnostic resource loading