improve gen_server template