add  service, fix and improve