separate maintenance service from controller