decouples data from server