refactored json remote fetch