extracted more stuff from concrete to abstract rest controller