diff --git a/api/api.proto b/api/api.proto
index 6372af3..56a8e9e 100644
--- a/api/api.proto
+++ b/api/api.proto
@@ -30,8 +30,6 @@
 
 	rpc WriteChunk(WriteChunkRequest) returns (WriteChunkResponse) {}
 
-	rpc StoreChunk(StoreChunkRequest) returns (StoreChunkResponse) {}
-
 	rpc RemoveChunk(RemoveChunkRequest) returns (RemoveChunkResponse) {}
 }
 
@@ -82,14 +80,6 @@
 	int32 bytes_written = 1;
 }
 
-message StoreChunkRequest {
-	string chunk_id = 1;
-	bytes data = 2;
-}
-
-message StoreChunkResponse {
-}
-
 message RemoveChunkRequest {
 	string chunk_id = 1;
 }
diff --git a/chunk/server.go b/chunk/server.go
index 0566c16..1e7b534 100644
--- a/chunk/server.go
+++ b/chunk/server.go
@@ -108,18 +108,6 @@
 	}
 }
 
-func (s *ChunkServer) StoreChunk(
-	ctx context.Context,
-	req *api.StoreChunkRequest) (resp *api.StoreChunkResponse, err error) {
-	chunk := s.factory.New(len(req.Data))
-	s.chunks.Store(req.ChunkId, chunk)
-	_, err = chunk.WriterAt().WriteAt(req.Data, 0)
-	if err == nil {
-		resp = &api.StoreChunkResponse{}
-	}
-	return
-}
-
 func (s *ChunkServer) RemoveChunk(
 	ctx context.Context,
 	req *api.RemoveChunkRequest) (resp *api.RemoveChunkResponse, err error) {
diff --git a/chunk/server_test.go b/chunk/server_test.go
index 70f209f..2c6fb83 100644
--- a/chunk/server_test.go
+++ b/chunk/server_test.go
@@ -10,8 +10,16 @@
 
 func TestStoreChunk(t *testing.T) {
 	s := ChunkServer{factory: &InMemoryChunkFactory{}}
-	_, err := s.StoreChunk(context.Background(), &api.StoreChunkRequest{
+	_, err := s.CreateChunk(context.Background(), &api.CreateChunkRequest{
 		ChunkId: "foo",
+		Size:    11,
+		Role:    api.ReplicaRole_PRIMARY})
+	if err != nil {
+		t.Error(err)
+	}
+	_, err = s.WriteChunk(context.Background(), &api.WriteChunkRequest{
+		ChunkId: "foo",
+		Offset:  0,
 		Data:    []byte("hello world")})
 	if err != nil {
 		t.Error(err)
@@ -20,8 +28,16 @@
 
 func TestStoreAndReadChunk(t *testing.T) {
 	s := ChunkServer{factory: &InMemoryChunkFactory{}}
-	_, err := s.StoreChunk(context.Background(), &api.StoreChunkRequest{
+	_, err := s.CreateChunk(context.Background(), &api.CreateChunkRequest{
 		ChunkId: "foo",
+		Size:    11,
+		Role:    api.ReplicaRole_PRIMARY})
+	if err != nil {
+		t.Error(err)
+	}
+	_, err = s.WriteChunk(context.Background(), &api.WriteChunkRequest{
+		ChunkId: "foo",
+		Offset:  0,
 		Data:    []byte("hello world")})
 	if err != nil {
 		t.Error(err)
@@ -39,8 +55,16 @@
 
 func TestReadWithOffsets(t *testing.T) {
 	s := ChunkServer{factory: &InMemoryChunkFactory{}}
-	_, err := s.StoreChunk(context.Background(), &api.StoreChunkRequest{
+	_, err := s.CreateChunk(context.Background(), &api.CreateChunkRequest{
 		ChunkId: "foo",
+		Size:    11,
+		Role:    api.ReplicaRole_PRIMARY})
+	if err != nil {
+		t.Error(err)
+	}
+	_, err = s.WriteChunk(context.Background(), &api.WriteChunkRequest{
+		ChunkId: "foo",
+		Offset:  0,
 		Data:    []byte("hello world")})
 	if err != nil {
 		t.Error(err)
