move fetch logic to resource