resource abstract