decouple exercise and fetch remote JSON