updated service impl