service generation