Move backend call to model layer