simplifed single_resource - it now reuses some common methods