I am not sure why return an interface here. How will the app consume this programmatically?