diff --git a/generators/core_main_visitor.go b/generators/core_main_visitor.go
index 09eac9630466d8ed9cc9eec02459ab9febb659a0..409f8b765fb329ddeaffde27e328852d31737354 100644
--- a/generators/core_main_visitor.go
+++ b/generators/core_main_visitor.go
@@ -49,6 +49,7 @@ type MainVisitor struct {
 	added_imports    map[string]bool
 	frameworks       map[string]netgen.NetworkGenerator
 	DepGraph         *DependencyGraph
+	commands         []string
 	// Process Main Function state
 	localServicesInfo map[string]map[string]string
 	ProcInfo          *ProcessRunServicesInfo
@@ -184,6 +185,7 @@ func (v *MainVisitor) VisitDockerContainerNode(_ Visitor, n *DockerContainerNode
 	v.public_ports = make(map[int]int)
 	v.isservice = true
 	v.imageName = ""
+	v.commands = []string{}
 	v.DefaultVisitor.VisitDockerContainerNode(v, n)
 	// Generate Docker File for each container
 
@@ -196,7 +198,7 @@ func (v *MainVisitor) VisitDockerContainerNode(_ Visitor, n *DockerContainerNode
 	v.generateDockerFile(docker_dir, n)
 
 	if !v.isservice {
-		dockerInfo := &deploy.DeployInfo{Address: v.address, Port: v.port, DockerPath: "", ImageName: v.imageName, EnvVars: v.cur_env_vars, PublicPorts: v.public_ports}
+		dockerInfo := &deploy.DeployInfo{Address: v.address, Port: v.port, DockerPath: "", ImageName: v.imageName, EnvVars: v.cur_env_vars, PublicPorts: v.public_ports, Command: v.commands}
 		v.deployInfo = dockerInfo
 		depgen, err := v.depgenfactory.GetGenerator("docker")
 		if err != nil {
@@ -960,6 +962,8 @@ func (v *MainVisitor) VisitMemcachedNode(_ Visitor, n *MemcachedNode) {
 	v.cur_env_vars[n.Name+"_ADDRESS"] = v.address
 	v.cur_env_vars[n.Name+"_PORT"] = strconv.Itoa(v.port)
 	v.imageName = "memcached"
+	v.commands = append(v.commands, "\"-c\"")
+	v.commands = append(v.commands, "\"65536\"")
 }
 
 func (v *MainVisitor) VisitRedisNode(_ Visitor, n *RedisNode) {
diff --git a/generators/deploy/core_deployer.go b/generators/deploy/core_deployer.go
index 30e3465ddaa440d92738971000b110c7ef6f7bdc..caaff5929627840a661c7624080d44fc7434543a 100644
--- a/generators/deploy/core_deployer.go
+++ b/generators/deploy/core_deployer.go
@@ -13,6 +13,7 @@ type DeployInfo struct {
 	EnvVars     map[string]string
 	PublicPorts map[int]int
 	NumReplicas int
+	Command     []string
 }
 
 func NewDeployInfo() *DeployInfo {
diff --git a/generators/deploy/plugin_dockercompose.go b/generators/deploy/plugin_dockercompose.go
index 29446a89fde3b04ef48d1c3cb4d7f1b2978dc1a0..cc4379774efc378b4c1edfe27abd736d6ee2d141 100644
--- a/generators/deploy/plugin_dockercompose.go
+++ b/generators/deploy/plugin_dockercompose.go
@@ -3,8 +3,8 @@ package deploy
 import (
 	"os"
 	"path"
-	"strings"
 	"strconv"
+	"strings"
 )
 
 type DockerComposeDeployerGenerator struct {
@@ -59,6 +59,10 @@ func (d *DockerComposeDeployerGenerator) AddChoice(name string, depInfo *DeployI
 			d.composeString += prefix + prefix + prefix + "- " + key + "=" + val + "\n"
 		}
 	}
+	if len(depInfo.Command) != 0 {
+		d.composeString += prefix + prefix + "command:\n"
+		d.composeString += prefix + prefix + prefix + "[" + strings.Join(depInfo.Command, ", ") + "]\n"
+	}
 	d.composeString += prefix + prefix + "restart: always\n\n"
 }
 
@@ -71,4 +75,4 @@ func (d *DockerComposeDeployerGenerator) GenerateConfigFiles(out_dir string) err
 	d.composeString = "version: '3'\nservices:\n" + d.composeString
 	_, err = outf.WriteString(d.composeString)
 	return err
-}
\ No newline at end of file
+}
diff --git a/stdlib/choices/cache/memcached.go b/stdlib/choices/cache/memcached.go
index b37667e6bb3572a12cf5a1bfaeb953e818381974..0be051665b18da223882313e70fe9e478f5ca98f 100644
--- a/stdlib/choices/cache/memcached.go
+++ b/stdlib/choices/cache/memcached.go
@@ -5,46 +5,29 @@ import (
 	"sync"
 
 	"github.com/bradfitz/gomemcache/memcache"
-	"gitlab.mpi-sws.org/cld/blueprint/blueprint-compiler/stdlib"
 )
 
-type MCConnection struct{
+type Memcached struct {
 	Client *memcache.Client
 }
 
-func NewCacheConn(addr string, port string) *MCConnection {
+func NewMemcachedClient(addr string, port string) *Memcached {
 	conn_addr := addr + ":" + port
 	client := memcache.New(conn_addr)
-	client.MaxIdleConns = 60000
-	return &MCConnection{Client : client}
-}
-
-type Memcached struct {
-	connPool *stdlib.ClientPool[*MCConnection]
-}
-
-func NewMemcachedClient(addr string, port string) *Memcached {
-	NewConn := func() *MCConnection {
-		return NewCacheConn(addr, port)
-	}
-	pool := stdlib.NewClientPool[*MCConnection](1024, NewConn)
-	return &Memcached{connPool: pool}
+	client.MaxIdleConns = 1000
+	return &Memcached{Client: client}
 }
 
 func (m *Memcached) Put(key string, value interface{}) error {
-	conn := m.connPool.Pop()
-	defer m.connPool.Push(conn)
 	marshaled_val, err := json.Marshal(value)
 	if err != nil {
 		return err
 	}
-	return conn.Client.Set(&memcache.Item{Key: key, Value: marshaled_val})
+	return m.Client.Set(&memcache.Item{Key: key, Value: marshaled_val})
 }
 
 func (m *Memcached) Get(key string, value interface{}) error {
-	conn := m.connPool.Pop()
-	defer m.connPool.Push(conn)
-	it, err := conn.Client.Get(key)
+	it, err := m.Client.Get(key)
 	if err != nil {
 		return err
 	}
@@ -52,22 +35,16 @@ func (m *Memcached) Get(key string, value interface{}) error {
 }
 
 func (m *Memcached) Incr(key string) (int64, error) {
-	conn := m.connPool.Pop()
-	defer m.connPool.Push(conn)
-	val, err := conn.Client.Increment(key, 1)
+	val, err := m.Client.Increment(key, 1)
 	return int64(val), err
 }
 
 func (m *Memcached) Delete(key string) error {
-	conn := m.connPool.Pop()
-	defer m.connPool.Push(conn)
-	return conn.Client.Delete(key)
+	return m.Client.Delete(key)
 }
 
 func (m *Memcached) Mget(keys []string, values []interface{}) error {
-	conn := m.connPool.Pop()
-	defer m.connPool.Push(conn)
-	val_map, err := conn.Client.GetMulti(keys)
+	val_map, err := m.Client.GetMulti(keys)
 	if err != nil {
 		return err
 	}