added ServiceDelegate + some fix