diff --git a/bots_pb2.py b/bots_pb2.py
deleted file mode 100644
index 3145706..0000000
--- a/bots_pb2.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: bots.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nbots.proto\x12\x04\x62ots\"\x14\n\x06IdList\x12\n\n\x02ID\x18\x01 \x03(\x03\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\x03\"G\n\x0b\x42otResponse\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0e\n\x06TimeID\x18\x02 \x01(\x03\x12\x0c\n\x04\x44\x61te\x18\x03 \x01(\x03\x12\x0e\n\x06\x46ileID\x18\x04 \x01(\t\"t\n\nBotRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x13\n\x06TimeID\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04\x44\x61te\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x06\x46ileID\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\t\n\x07_TimeIDB\x07\n\x05_DateB\t\n\x07_FileID\"*\n\x07\x42otList\x12\x1f\n\x04\x42ots\x18\x01 \x03(\x0b\x32\x11.bots.BotResponse\"O\n\x0bListRequest\x12 \n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x10.bots.BotRequest\x12\x1e\n\x04Page\x18\x02 \x01(\x0b\x32\x10.bots.Pagination\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"\x0e\n\x0cNullResponse2\x96\x02\n\x0b\x42otsService\x12)\n\x03Get\x12\x0f.bots.IdMessage\x1a\x11.bots.BotResponse\x12&\n\x07GetList\x12\x0c.bots.IdList\x1a\r.bots.BotList\x12.\n\x06Update\x12\x10.bots.BotRequest\x1a\x12.bots.NullResponse\x12+\n\x06\x43reate\x12\x10.bots.BotRequest\x1a\x0f.bots.IdMessage\x12-\n\x06\x44\x65lete\x12\x0f.bots.IdMessage\x1a\x12.bots.NullResponse\x12(\n\x04List\x12\x11.bots.ListRequest\x1a\r.bots.BotListB-Z+git.itzana.me/strafesnet/protobufs/rpc/botsb\x06proto3')
-
-
-
-_IDLIST = DESCRIPTOR.message_types_by_name['IdList']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_BOTRESPONSE = DESCRIPTOR.message_types_by_name['BotResponse']
-_BOTREQUEST = DESCRIPTOR.message_types_by_name['BotRequest']
-_BOTLIST = DESCRIPTOR.message_types_by_name['BotList']
-_LISTREQUEST = DESCRIPTOR.message_types_by_name['ListRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-IdList = _reflection.GeneratedProtocolMessageType('IdList', (_message.Message,), {
-  'DESCRIPTOR' : _IDLIST,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.IdList)
-  })
-_sym_db.RegisterMessage(IdList)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-BotResponse = _reflection.GeneratedProtocolMessageType('BotResponse', (_message.Message,), {
-  'DESCRIPTOR' : _BOTRESPONSE,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.BotResponse)
-  })
-_sym_db.RegisterMessage(BotResponse)
-
-BotRequest = _reflection.GeneratedProtocolMessageType('BotRequest', (_message.Message,), {
-  'DESCRIPTOR' : _BOTREQUEST,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.BotRequest)
-  })
-_sym_db.RegisterMessage(BotRequest)
-
-BotList = _reflection.GeneratedProtocolMessageType('BotList', (_message.Message,), {
-  'DESCRIPTOR' : _BOTLIST,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.BotList)
-  })
-_sym_db.RegisterMessage(BotList)
-
-ListRequest = _reflection.GeneratedProtocolMessageType('ListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTREQUEST,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.ListRequest)
-  })
-_sym_db.RegisterMessage(ListRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'bots_pb2'
-  # @@protoc_insertion_point(class_scope:bots.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_BOTSSERVICE = DESCRIPTOR.services_by_name['BotsService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z+git.itzana.me/strafesnet/protobufs/rpc/bots'
-  _IDLIST._serialized_start=20
-  _IDLIST._serialized_end=40
-  _IDMESSAGE._serialized_start=42
-  _IDMESSAGE._serialized_end=65
-  _BOTRESPONSE._serialized_start=67
-  _BOTRESPONSE._serialized_end=138
-  _BOTREQUEST._serialized_start=140
-  _BOTREQUEST._serialized_end=256
-  _BOTLIST._serialized_start=258
-  _BOTLIST._serialized_end=300
-  _LISTREQUEST._serialized_start=302
-  _LISTREQUEST._serialized_end=381
-  _PAGINATION._serialized_start=383
-  _PAGINATION._serialized_end=425
-  _NULLRESPONSE._serialized_start=427
-  _NULLRESPONSE._serialized_end=441
-  _BOTSSERVICE._serialized_start=444
-  _BOTSSERVICE._serialized_end=722
-# @@protoc_insertion_point(module_scope)
diff --git a/bots_pb2_grpc.py b/bots_pb2_grpc.py
deleted file mode 100644
index e7a0e03..0000000
--- a/bots_pb2_grpc.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import bots_pb2 as bots__pb2
-
-
-class BotsServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Get = channel.unary_unary(
-                '/bots.BotsService/Get',
-                request_serializer=bots__pb2.IdMessage.SerializeToString,
-                response_deserializer=bots__pb2.BotResponse.FromString,
-                )
-        self.GetList = channel.unary_unary(
-                '/bots.BotsService/GetList',
-                request_serializer=bots__pb2.IdList.SerializeToString,
-                response_deserializer=bots__pb2.BotList.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/bots.BotsService/Update',
-                request_serializer=bots__pb2.BotRequest.SerializeToString,
-                response_deserializer=bots__pb2.NullResponse.FromString,
-                )
-        self.Create = channel.unary_unary(
-                '/bots.BotsService/Create',
-                request_serializer=bots__pb2.BotRequest.SerializeToString,
-                response_deserializer=bots__pb2.IdMessage.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/bots.BotsService/Delete',
-                request_serializer=bots__pb2.IdMessage.SerializeToString,
-                response_deserializer=bots__pb2.NullResponse.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/bots.BotsService/List',
-                request_serializer=bots__pb2.ListRequest.SerializeToString,
-                response_deserializer=bots__pb2.BotList.FromString,
-                )
-
-
-class BotsServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetList(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_BotsServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=bots__pb2.IdMessage.FromString,
-                    response_serializer=bots__pb2.BotResponse.SerializeToString,
-            ),
-            'GetList': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetList,
-                    request_deserializer=bots__pb2.IdList.FromString,
-                    response_serializer=bots__pb2.BotList.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=bots__pb2.BotRequest.FromString,
-                    response_serializer=bots__pb2.NullResponse.SerializeToString,
-            ),
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=bots__pb2.BotRequest.FromString,
-                    response_serializer=bots__pb2.IdMessage.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=bots__pb2.IdMessage.FromString,
-                    response_serializer=bots__pb2.NullResponse.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=bots__pb2.ListRequest.FromString,
-                    response_serializer=bots__pb2.BotList.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'bots.BotsService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class BotsService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/Get',
-            bots__pb2.IdMessage.SerializeToString,
-            bots__pb2.BotResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetList(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/GetList',
-            bots__pb2.IdList.SerializeToString,
-            bots__pb2.BotList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/Update',
-            bots__pb2.BotRequest.SerializeToString,
-            bots__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/Create',
-            bots__pb2.BotRequest.SerializeToString,
-            bots__pb2.IdMessage.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/Delete',
-            bots__pb2.IdMessage.SerializeToString,
-            bots__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/bots.BotsService/List',
-            bots__pb2.ListRequest.SerializeToString,
-            bots__pb2.BotList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/events_pb2.py b/events_pb2.py
deleted file mode 100644
index cc7e5ad..0000000
--- a/events_pb2.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: events.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x65vents.proto\x12\x06\x65vents\x1a\x1cgoogle/protobuf/struct.proto\"q\n\x0b\x45ventCreate\x12\r\n\x05\x45vent\x18\x01 \x01(\t\x12\x0e\n\x06Server\x18\x02 \x01(\t\x12\x0e\n\x06GameID\x18\x03 \x01(\x05\x12\x0c\n\x04\x44\x61te\x18\x04 \x01(\x03\x12%\n\x04\x44\x61ta\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\"{\n\tEventItem\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\r\n\x05\x45vent\x18\x02 \x01(\t\x12\x0e\n\x06Server\x18\x03 \x01(\t\x12\x0e\n\x06GameID\x18\x04 \x01(\x05\x12\x0c\n\x04\x44\x61te\x18\x05 \x01(\x03\x12%\n\x04\x44\x61ta\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\"Q\n\rLatestRequest\x12\x13\n\x06LastID\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12 \n\x04Page\x18\x02 \x01(\x0b\x32\x12.events.PaginationB\t\n\x07_LastID\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"3\n\x0eLatestResponse\x12!\n\x06\x45vents\x18\x01 \x03(\x0b\x32\x11.events.EventItem\"\x0e\n\x0cNullResponse2\xb2\x01\n\rEventsService\x12\x37\n\x06Latest\x12\x15.events.LatestRequest\x1a\x16.events.LatestResponse\x12\x33\n\x06\x43reate\x12\x13.events.EventCreate\x1a\x14.events.NullResponse\x12\x33\n\x05\x43lean\x12\x14.events.NullResponse\x1a\x14.events.NullResponseB/Z-git.itzana.me/strafesnet/protobufs/rpc/eventsb\x06proto3')
-
-
-
-_EVENTCREATE = DESCRIPTOR.message_types_by_name['EventCreate']
-_EVENTITEM = DESCRIPTOR.message_types_by_name['EventItem']
-_LATESTREQUEST = DESCRIPTOR.message_types_by_name['LatestRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_LATESTRESPONSE = DESCRIPTOR.message_types_by_name['LatestResponse']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-EventCreate = _reflection.GeneratedProtocolMessageType('EventCreate', (_message.Message,), {
-  'DESCRIPTOR' : _EVENTCREATE,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.EventCreate)
-  })
-_sym_db.RegisterMessage(EventCreate)
-
-EventItem = _reflection.GeneratedProtocolMessageType('EventItem', (_message.Message,), {
-  'DESCRIPTOR' : _EVENTITEM,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.EventItem)
-  })
-_sym_db.RegisterMessage(EventItem)
-
-LatestRequest = _reflection.GeneratedProtocolMessageType('LatestRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LATESTREQUEST,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.LatestRequest)
-  })
-_sym_db.RegisterMessage(LatestRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-LatestResponse = _reflection.GeneratedProtocolMessageType('LatestResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LATESTRESPONSE,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.LatestResponse)
-  })
-_sym_db.RegisterMessage(LatestResponse)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'events_pb2'
-  # @@protoc_insertion_point(class_scope:events.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_EVENTSSERVICE = DESCRIPTOR.services_by_name['EventsService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z-git.itzana.me/strafesnet/protobufs/rpc/events'
-  _EVENTCREATE._serialized_start=54
-  _EVENTCREATE._serialized_end=167
-  _EVENTITEM._serialized_start=169
-  _EVENTITEM._serialized_end=292
-  _LATESTREQUEST._serialized_start=294
-  _LATESTREQUEST._serialized_end=375
-  _PAGINATION._serialized_start=377
-  _PAGINATION._serialized_end=419
-  _LATESTRESPONSE._serialized_start=421
-  _LATESTRESPONSE._serialized_end=472
-  _NULLRESPONSE._serialized_start=474
-  _NULLRESPONSE._serialized_end=488
-  _EVENTSSERVICE._serialized_start=491
-  _EVENTSSERVICE._serialized_end=669
-# @@protoc_insertion_point(module_scope)
diff --git a/events_pb2_grpc.py b/events_pb2_grpc.py
deleted file mode 100644
index 7f5fc31..0000000
--- a/events_pb2_grpc.py
+++ /dev/null
@@ -1,132 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import events_pb2 as events__pb2
-
-
-class EventsServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Latest = channel.unary_unary(
-                '/events.EventsService/Latest',
-                request_serializer=events__pb2.LatestRequest.SerializeToString,
-                response_deserializer=events__pb2.LatestResponse.FromString,
-                )
-        self.Create = channel.unary_unary(
-                '/events.EventsService/Create',
-                request_serializer=events__pb2.EventCreate.SerializeToString,
-                response_deserializer=events__pb2.NullResponse.FromString,
-                )
-        self.Clean = channel.unary_unary(
-                '/events.EventsService/Clean',
-                request_serializer=events__pb2.NullResponse.SerializeToString,
-                response_deserializer=events__pb2.NullResponse.FromString,
-                )
-
-
-class EventsServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Latest(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Clean(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_EventsServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Latest': grpc.unary_unary_rpc_method_handler(
-                    servicer.Latest,
-                    request_deserializer=events__pb2.LatestRequest.FromString,
-                    response_serializer=events__pb2.LatestResponse.SerializeToString,
-            ),
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=events__pb2.EventCreate.FromString,
-                    response_serializer=events__pb2.NullResponse.SerializeToString,
-            ),
-            'Clean': grpc.unary_unary_rpc_method_handler(
-                    servicer.Clean,
-                    request_deserializer=events__pb2.NullResponse.FromString,
-                    response_serializer=events__pb2.NullResponse.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'events.EventsService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class EventsService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Latest(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/events.EventsService/Latest',
-            events__pb2.LatestRequest.SerializeToString,
-            events__pb2.LatestResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/events.EventsService/Create',
-            events__pb2.EventCreate.SerializeToString,
-            events__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Clean(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/events.EventsService/Clean',
-            events__pb2.NullResponse.SerializeToString,
-            events__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/maps_pb2.py b/maps_pb2.py
deleted file mode 100644
index 76b7871..0000000
--- a/maps_pb2.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: maps.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nmaps.proto\x12\x04maps\"\x14\n\x06IdList\x12\n\n\x02ID\x18\x01 \x03(\x03\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\x03\"]\n\x0bMapResponse\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x13\n\x0b\x44isplayName\x18\x02 \x01(\t\x12\x0f\n\x07\x43reator\x18\x03 \x01(\t\x12\x0e\n\x06GameID\x18\x04 \x01(\x05\x12\x0c\n\x04\x44\x61te\x18\x05 \x01(\x03\"\xa0\x01\n\nMapRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x18\n\x0b\x44isplayName\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x43reator\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06GameID\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x44\x61te\x18\x05 \x01(\x03H\x03\x88\x01\x01\x42\x0e\n\x0c_DisplayNameB\n\n\x08_CreatorB\t\n\x07_GameIDB\x07\n\x05_Date\"\x83\x01\n\tMapFilter\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x18\n\x0b\x44isplayName\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x43reator\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06GameID\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\x0e\n\x0c_DisplayNameB\n\n\x08_CreatorB\t\n\x07_GameID\"*\n\x07MapList\x12\x1f\n\x04Maps\x18\x01 \x03(\x0b\x32\x11.maps.MapResponse\"N\n\x0bListRequest\x12\x1f\n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x0f.maps.MapFilter\x12\x1e\n\x04Page\x18\x02 \x01(\x0b\x32\x10.maps.Pagination\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"\x0e\n\x0cNullResponse2\x96\x02\n\x0bMapsService\x12)\n\x03Get\x12\x0f.maps.IdMessage\x1a\x11.maps.MapResponse\x12&\n\x07GetList\x12\x0c.maps.IdList\x1a\r.maps.MapList\x12.\n\x06Update\x12\x10.maps.MapRequest\x1a\x12.maps.NullResponse\x12+\n\x06\x43reate\x12\x10.maps.MapRequest\x1a\x0f.maps.IdMessage\x12-\n\x06\x44\x65lete\x12\x0f.maps.IdMessage\x1a\x12.maps.NullResponse\x12(\n\x04List\x12\x11.maps.ListRequest\x1a\r.maps.MapListB-Z+git.itzana.me/strafesnet/protobufs/rpc/mapsb\x06proto3')
-
-
-
-_IDLIST = DESCRIPTOR.message_types_by_name['IdList']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_MAPRESPONSE = DESCRIPTOR.message_types_by_name['MapResponse']
-_MAPREQUEST = DESCRIPTOR.message_types_by_name['MapRequest']
-_MAPFILTER = DESCRIPTOR.message_types_by_name['MapFilter']
-_MAPLIST = DESCRIPTOR.message_types_by_name['MapList']
-_LISTREQUEST = DESCRIPTOR.message_types_by_name['ListRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-IdList = _reflection.GeneratedProtocolMessageType('IdList', (_message.Message,), {
-  'DESCRIPTOR' : _IDLIST,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.IdList)
-  })
-_sym_db.RegisterMessage(IdList)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-MapResponse = _reflection.GeneratedProtocolMessageType('MapResponse', (_message.Message,), {
-  'DESCRIPTOR' : _MAPRESPONSE,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.MapResponse)
-  })
-_sym_db.RegisterMessage(MapResponse)
-
-MapRequest = _reflection.GeneratedProtocolMessageType('MapRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MAPREQUEST,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.MapRequest)
-  })
-_sym_db.RegisterMessage(MapRequest)
-
-MapFilter = _reflection.GeneratedProtocolMessageType('MapFilter', (_message.Message,), {
-  'DESCRIPTOR' : _MAPFILTER,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.MapFilter)
-  })
-_sym_db.RegisterMessage(MapFilter)
-
-MapList = _reflection.GeneratedProtocolMessageType('MapList', (_message.Message,), {
-  'DESCRIPTOR' : _MAPLIST,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.MapList)
-  })
-_sym_db.RegisterMessage(MapList)
-
-ListRequest = _reflection.GeneratedProtocolMessageType('ListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTREQUEST,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.ListRequest)
-  })
-_sym_db.RegisterMessage(ListRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'maps_pb2'
-  # @@protoc_insertion_point(class_scope:maps.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_MAPSSERVICE = DESCRIPTOR.services_by_name['MapsService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z+git.itzana.me/strafesnet/protobufs/rpc/maps'
-  _IDLIST._serialized_start=20
-  _IDLIST._serialized_end=40
-  _IDMESSAGE._serialized_start=42
-  _IDMESSAGE._serialized_end=65
-  _MAPRESPONSE._serialized_start=67
-  _MAPRESPONSE._serialized_end=160
-  _MAPREQUEST._serialized_start=163
-  _MAPREQUEST._serialized_end=323
-  _MAPFILTER._serialized_start=326
-  _MAPFILTER._serialized_end=457
-  _MAPLIST._serialized_start=459
-  _MAPLIST._serialized_end=501
-  _LISTREQUEST._serialized_start=503
-  _LISTREQUEST._serialized_end=581
-  _PAGINATION._serialized_start=583
-  _PAGINATION._serialized_end=625
-  _NULLRESPONSE._serialized_start=627
-  _NULLRESPONSE._serialized_end=641
-  _MAPSSERVICE._serialized_start=644
-  _MAPSSERVICE._serialized_end=922
-# @@protoc_insertion_point(module_scope)
diff --git a/maps_pb2_grpc.py b/maps_pb2_grpc.py
deleted file mode 100644
index 6c714e0..0000000
--- a/maps_pb2_grpc.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import maps_pb2 as maps__pb2
-
-
-class MapsServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Get = channel.unary_unary(
-                '/maps.MapsService/Get',
-                request_serializer=maps__pb2.IdMessage.SerializeToString,
-                response_deserializer=maps__pb2.MapResponse.FromString,
-                )
-        self.GetList = channel.unary_unary(
-                '/maps.MapsService/GetList',
-                request_serializer=maps__pb2.IdList.SerializeToString,
-                response_deserializer=maps__pb2.MapList.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/maps.MapsService/Update',
-                request_serializer=maps__pb2.MapRequest.SerializeToString,
-                response_deserializer=maps__pb2.NullResponse.FromString,
-                )
-        self.Create = channel.unary_unary(
-                '/maps.MapsService/Create',
-                request_serializer=maps__pb2.MapRequest.SerializeToString,
-                response_deserializer=maps__pb2.IdMessage.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/maps.MapsService/Delete',
-                request_serializer=maps__pb2.IdMessage.SerializeToString,
-                response_deserializer=maps__pb2.NullResponse.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/maps.MapsService/List',
-                request_serializer=maps__pb2.ListRequest.SerializeToString,
-                response_deserializer=maps__pb2.MapList.FromString,
-                )
-
-
-class MapsServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetList(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_MapsServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=maps__pb2.IdMessage.FromString,
-                    response_serializer=maps__pb2.MapResponse.SerializeToString,
-            ),
-            'GetList': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetList,
-                    request_deserializer=maps__pb2.IdList.FromString,
-                    response_serializer=maps__pb2.MapList.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=maps__pb2.MapRequest.FromString,
-                    response_serializer=maps__pb2.NullResponse.SerializeToString,
-            ),
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=maps__pb2.MapRequest.FromString,
-                    response_serializer=maps__pb2.IdMessage.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=maps__pb2.IdMessage.FromString,
-                    response_serializer=maps__pb2.NullResponse.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=maps__pb2.ListRequest.FromString,
-                    response_serializer=maps__pb2.MapList.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'maps.MapsService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class MapsService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/Get',
-            maps__pb2.IdMessage.SerializeToString,
-            maps__pb2.MapResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetList(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/GetList',
-            maps__pb2.IdList.SerializeToString,
-            maps__pb2.MapList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/Update',
-            maps__pb2.MapRequest.SerializeToString,
-            maps__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/Create',
-            maps__pb2.MapRequest.SerializeToString,
-            maps__pb2.IdMessage.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/Delete',
-            maps__pb2.IdMessage.SerializeToString,
-            maps__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/maps.MapsService/List',
-            maps__pb2.ListRequest.SerializeToString,
-            maps__pb2.MapList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/servers_pb2.py b/servers_pb2.py
deleted file mode 100644
index eafbd47..0000000
--- a/servers_pb2.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: servers.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import users_pb2 as users__pb2
-import maps_pb2 as maps__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservers.proto\x12\x07servers\x1a\x0busers.proto\x1a\nmaps.proto\"2\n\nServerList\x12$\n\x07Servers\x18\x01 \x03(\x0b\x32\x13.servers.ServerItem\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\t\"\xbb\x01\n\x0cServerCreate\x12\n\n\x02ID\x18\x01 \x01(\t\x12\x0f\n\x07PlaceID\x18\x02 \x01(\x03\x12\x11\n\tStartTime\x18\x03 \x01(\x03\x12\x13\n\x0bVipServerID\x18\x04 \x01(\t\x12\x0e\n\x06UserID\x18\x05 \x01(\x03\x12\x0e\n\x06GameID\x18\x06 \x01(\x05\x12\r\n\x05MapID\x18\x07 \x01(\x03\x12\x0f\n\x07MapDate\x18\x08 \x01(\x03\x12\x12\n\nPlayerList\x18\t \x03(\x03\x12\x12\n\nLastUpdate\x18\n \x01(\x03\"\xdd\x01\n\nServerItem\x12\n\n\x02ID\x18\x01 \x01(\t\x12\x0f\n\x07PlaceID\x18\x02 \x01(\x03\x12\x11\n\tStartTime\x18\x03 \x01(\x03\x12\x13\n\x0bVipServerID\x18\x04 \x01(\t\x12!\n\x04User\x18\x05 \x01(\x0b\x32\x13.users.UserResponse\x12\x0e\n\x06GameID\x18\x06 \x01(\x05\x12\x1e\n\x03Map\x18\x07 \x01(\x0b\x32\x11.maps.MapResponse\x12\x0f\n\x07MapDate\x18\x08 \x01(\x03\x12\x12\n\nPlayerList\x18\t \x03(\x03\x12\x12\n\nLastUpdate\x18\n \x01(\x03\"n\n\x0cServerUpdate\x12\n\n\x02ID\x18\x01 \x01(\t\x12\x12\n\x05MapID\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x14\n\x07MapDate\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\nPlayerList\x18\x04 \x03(\x03\x42\x08\n\x06_MapIDB\n\n\x08_MapDate\"\xd0\x01\n\x0cServerFilter\x12\x0f\n\x02ID\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07PlaceID\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bVipServerID\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06UserID\x18\x05 \x01(\x03H\x03\x88\x01\x01\x12\x13\n\x06GameID\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x12\n\x05MapID\x18\x07 \x01(\x03H\x05\x88\x01\x01\x42\x05\n\x03_IDB\n\n\x08_PlaceIDB\x0e\n\x0c_VipServerIDB\t\n\x07_UserIDB\t\n\x07_GameIDB\x08\n\x06_MapID\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"]\n\x11ServerListRequest\x12%\n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x15.servers.ServerFilter\x12!\n\x04Page\x18\x02 \x01(\x0b\x32\x13.servers.Pagination\"\x0e\n\x0cNullResponse2\x9d\x02\n\rServerService\x12\x36\n\x06\x43reate\x12\x15.servers.ServerCreate\x1a\x15.servers.NullResponse\x12\x36\n\x06Update\x12\x15.servers.ServerUpdate\x1a\x15.servers.NullResponse\x12\x33\n\x06\x44\x65lete\x12\x12.servers.IdMessage\x1a\x15.servers.NullResponse\x12.\n\x03Get\x12\x12.servers.IdMessage\x1a\x13.servers.ServerItem\x12\x37\n\x04List\x12\x1a.servers.ServerListRequest\x1a\x13.servers.ServerListB0Z.git.itzana.me/strafesnet/protobufs/rpc/serversb\x06proto3')
-
-
-
-_SERVERLIST = DESCRIPTOR.message_types_by_name['ServerList']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_SERVERCREATE = DESCRIPTOR.message_types_by_name['ServerCreate']
-_SERVERITEM = DESCRIPTOR.message_types_by_name['ServerItem']
-_SERVERUPDATE = DESCRIPTOR.message_types_by_name['ServerUpdate']
-_SERVERFILTER = DESCRIPTOR.message_types_by_name['ServerFilter']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_SERVERLISTREQUEST = DESCRIPTOR.message_types_by_name['ServerListRequest']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-ServerList = _reflection.GeneratedProtocolMessageType('ServerList', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERLIST,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerList)
-  })
-_sym_db.RegisterMessage(ServerList)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-ServerCreate = _reflection.GeneratedProtocolMessageType('ServerCreate', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERCREATE,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerCreate)
-  })
-_sym_db.RegisterMessage(ServerCreate)
-
-ServerItem = _reflection.GeneratedProtocolMessageType('ServerItem', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERITEM,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerItem)
-  })
-_sym_db.RegisterMessage(ServerItem)
-
-ServerUpdate = _reflection.GeneratedProtocolMessageType('ServerUpdate', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERUPDATE,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerUpdate)
-  })
-_sym_db.RegisterMessage(ServerUpdate)
-
-ServerFilter = _reflection.GeneratedProtocolMessageType('ServerFilter', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERFILTER,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerFilter)
-  })
-_sym_db.RegisterMessage(ServerFilter)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-ServerListRequest = _reflection.GeneratedProtocolMessageType('ServerListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _SERVERLISTREQUEST,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.ServerListRequest)
-  })
-_sym_db.RegisterMessage(ServerListRequest)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'servers_pb2'
-  # @@protoc_insertion_point(class_scope:servers.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_SERVERSERVICE = DESCRIPTOR.services_by_name['ServerService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z.git.itzana.me/strafesnet/protobufs/rpc/servers'
-  _SERVERLIST._serialized_start=51
-  _SERVERLIST._serialized_end=101
-  _IDMESSAGE._serialized_start=103
-  _IDMESSAGE._serialized_end=126
-  _SERVERCREATE._serialized_start=129
-  _SERVERCREATE._serialized_end=316
-  _SERVERITEM._serialized_start=319
-  _SERVERITEM._serialized_end=540
-  _SERVERUPDATE._serialized_start=542
-  _SERVERUPDATE._serialized_end=652
-  _SERVERFILTER._serialized_start=655
-  _SERVERFILTER._serialized_end=863
-  _PAGINATION._serialized_start=865
-  _PAGINATION._serialized_end=907
-  _SERVERLISTREQUEST._serialized_start=909
-  _SERVERLISTREQUEST._serialized_end=1002
-  _NULLRESPONSE._serialized_start=1004
-  _NULLRESPONSE._serialized_end=1018
-  _SERVERSERVICE._serialized_start=1021
-  _SERVERSERVICE._serialized_end=1306
-# @@protoc_insertion_point(module_scope)
diff --git a/servers_pb2_grpc.py b/servers_pb2_grpc.py
deleted file mode 100644
index 3675ecb..0000000
--- a/servers_pb2_grpc.py
+++ /dev/null
@@ -1,198 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import servers_pb2 as servers__pb2
-
-
-class ServerServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Create = channel.unary_unary(
-                '/servers.ServerService/Create',
-                request_serializer=servers__pb2.ServerCreate.SerializeToString,
-                response_deserializer=servers__pb2.NullResponse.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/servers.ServerService/Update',
-                request_serializer=servers__pb2.ServerUpdate.SerializeToString,
-                response_deserializer=servers__pb2.NullResponse.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/servers.ServerService/Delete',
-                request_serializer=servers__pb2.IdMessage.SerializeToString,
-                response_deserializer=servers__pb2.NullResponse.FromString,
-                )
-        self.Get = channel.unary_unary(
-                '/servers.ServerService/Get',
-                request_serializer=servers__pb2.IdMessage.SerializeToString,
-                response_deserializer=servers__pb2.ServerItem.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/servers.ServerService/List',
-                request_serializer=servers__pb2.ServerListRequest.SerializeToString,
-                response_deserializer=servers__pb2.ServerList.FromString,
-                )
-
-
-class ServerServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_ServerServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=servers__pb2.ServerCreate.FromString,
-                    response_serializer=servers__pb2.NullResponse.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=servers__pb2.ServerUpdate.FromString,
-                    response_serializer=servers__pb2.NullResponse.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=servers__pb2.IdMessage.FromString,
-                    response_serializer=servers__pb2.NullResponse.SerializeToString,
-            ),
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=servers__pb2.IdMessage.FromString,
-                    response_serializer=servers__pb2.ServerItem.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=servers__pb2.ServerListRequest.FromString,
-                    response_serializer=servers__pb2.ServerList.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'servers.ServerService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class ServerService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/servers.ServerService/Create',
-            servers__pb2.ServerCreate.SerializeToString,
-            servers__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/servers.ServerService/Update',
-            servers__pb2.ServerUpdate.SerializeToString,
-            servers__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/servers.ServerService/Delete',
-            servers__pb2.IdMessage.SerializeToString,
-            servers__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/servers.ServerService/Get',
-            servers__pb2.IdMessage.SerializeToString,
-            servers__pb2.ServerItem.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/servers.ServerService/List',
-            servers__pb2.ServerListRequest.SerializeToString,
-            servers__pb2.ServerList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/times_pb2.py b/times_pb2.py
deleted file mode 100644
index d6d3088..0000000
--- a/times_pb2.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: times.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import users_pb2 as users__pb2
-import maps_pb2 as maps__pb2
-import bots_pb2 as bots__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btimes.proto\x12\x05times\x1a\x0busers.proto\x1a\nmaps.proto\x1a\nbots.proto\"\xf1\x01\n\x0bTimeRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x11\n\x04Time\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x13\n\x06UserID\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05MapID\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x11\n\x04\x44\x61te\x18\x05 \x01(\x03H\x03\x88\x01\x01\x12\x14\n\x07StyleID\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x13\n\x06ModeID\x18\x07 \x01(\x05H\x05\x88\x01\x01\x12\x13\n\x06GameID\x18\x08 \x01(\x05H\x06\x88\x01\x01\x42\x07\n\x05_TimeB\t\n\x07_UserIDB\x08\n\x06_MapIDB\x07\n\x05_DateB\n\n\x08_StyleIDB\t\n\x07_ModeIDB\t\n\x07_GameID\"\xfc\x01\n\nTimeFilter\x12\x0f\n\x02ID\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04Time\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x06UserID\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x12\n\x05MapID\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x11\n\x04\x44\x61te\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x14\n\x07StyleID\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x13\n\x06ModeID\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x13\n\x06GameID\x18\x08 \x01(\x05H\x07\x88\x01\x01\x42\x05\n\x03_IDB\x07\n\x05_TimeB\t\n\x07_UserIDB\x08\n\x06_MapIDB\x07\n\x05_DateB\n\n\x08_StyleIDB\t\n\x07_ModeIDB\t\n\x07_GameID\"\xd7\x01\n\x0cTimeResponse\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0c\n\x04Time\x18\x02 \x01(\x03\x12!\n\x04User\x18\x03 \x01(\x0b\x32\x13.users.UserResponse\x12\x1e\n\x03Map\x18\x04 \x01(\x0b\x32\x11.maps.MapResponse\x12#\n\x03\x42ot\x18\x05 \x01(\x0b\x32\x11.bots.BotResponseH\x00\x88\x01\x01\x12\x0c\n\x04\x44\x61te\x18\x06 \x01(\x03\x12\x0f\n\x07StyleID\x18\x07 \x01(\x05\x12\x0e\n\x06ModeID\x18\x08 \x01(\x05\x12\x0e\n\x06GameID\x18\t \x01(\x05\x42\x06\n\x04_Bot\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\x03\"=\n\x08TimeList\x12\"\n\x05Times\x18\x01 \x03(\x0b\x32\x13.times.TimeResponse\x12\r\n\x05Total\x18\x02 \x01(\x03\"\x1c\n\x0cRankResponse\x12\x0c\n\x04Rank\x18\x01 \x01(\x03\"f\n\x0bListRequest\x12!\n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x11.times.TimeFilter\x12\x13\n\x0b\x42lacklisted\x18\x02 \x01(\x08\x12\x1f\n\x04Page\x18\x03 \x01(\x0b\x32\x11.times.Pagination\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"\x0e\n\x0cNullResponse2\xac\x02\n\x0cTimesService\x12.\n\x06\x43reate\x12\x12.times.TimeRequest\x1a\x10.times.IdMessage\x12\x31\n\x06Update\x12\x12.times.TimeRequest\x1a\x13.times.NullResponse\x12/\n\x06\x44\x65lete\x12\x10.times.IdMessage\x1a\x13.times.NullResponse\x12,\n\x03Get\x12\x10.times.IdMessage\x1a\x13.times.TimeResponse\x12+\n\x04List\x12\x12.times.ListRequest\x1a\x0f.times.TimeList\x12-\n\x04Rank\x12\x10.times.IdMessage\x1a\x13.times.RankResponseB\x0fZ\rpkg/rpc/timesb\x06proto3')
-
-
-
-_TIMEREQUEST = DESCRIPTOR.message_types_by_name['TimeRequest']
-_TIMEFILTER = DESCRIPTOR.message_types_by_name['TimeFilter']
-_TIMERESPONSE = DESCRIPTOR.message_types_by_name['TimeResponse']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_TIMELIST = DESCRIPTOR.message_types_by_name['TimeList']
-_RANKRESPONSE = DESCRIPTOR.message_types_by_name['RankResponse']
-_LISTREQUEST = DESCRIPTOR.message_types_by_name['ListRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-TimeRequest = _reflection.GeneratedProtocolMessageType('TimeRequest', (_message.Message,), {
-  'DESCRIPTOR' : _TIMEREQUEST,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.TimeRequest)
-  })
-_sym_db.RegisterMessage(TimeRequest)
-
-TimeFilter = _reflection.GeneratedProtocolMessageType('TimeFilter', (_message.Message,), {
-  'DESCRIPTOR' : _TIMEFILTER,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.TimeFilter)
-  })
-_sym_db.RegisterMessage(TimeFilter)
-
-TimeResponse = _reflection.GeneratedProtocolMessageType('TimeResponse', (_message.Message,), {
-  'DESCRIPTOR' : _TIMERESPONSE,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.TimeResponse)
-  })
-_sym_db.RegisterMessage(TimeResponse)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-TimeList = _reflection.GeneratedProtocolMessageType('TimeList', (_message.Message,), {
-  'DESCRIPTOR' : _TIMELIST,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.TimeList)
-  })
-_sym_db.RegisterMessage(TimeList)
-
-RankResponse = _reflection.GeneratedProtocolMessageType('RankResponse', (_message.Message,), {
-  'DESCRIPTOR' : _RANKRESPONSE,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.RankResponse)
-  })
-_sym_db.RegisterMessage(RankResponse)
-
-ListRequest = _reflection.GeneratedProtocolMessageType('ListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTREQUEST,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.ListRequest)
-  })
-_sym_db.RegisterMessage(ListRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'times_pb2'
-  # @@protoc_insertion_point(class_scope:times.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_TIMESSERVICE = DESCRIPTOR.services_by_name['TimesService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z\rpkg/rpc/times'
-  _TIMEREQUEST._serialized_start=60
-  _TIMEREQUEST._serialized_end=301
-  _TIMEFILTER._serialized_start=304
-  _TIMEFILTER._serialized_end=556
-  _TIMERESPONSE._serialized_start=559
-  _TIMERESPONSE._serialized_end=774
-  _IDMESSAGE._serialized_start=776
-  _IDMESSAGE._serialized_end=799
-  _TIMELIST._serialized_start=801
-  _TIMELIST._serialized_end=862
-  _RANKRESPONSE._serialized_start=864
-  _RANKRESPONSE._serialized_end=892
-  _LISTREQUEST._serialized_start=894
-  _LISTREQUEST._serialized_end=996
-  _PAGINATION._serialized_start=998
-  _PAGINATION._serialized_end=1040
-  _NULLRESPONSE._serialized_start=1042
-  _NULLRESPONSE._serialized_end=1056
-  _TIMESSERVICE._serialized_start=1059
-  _TIMESSERVICE._serialized_end=1359
-# @@protoc_insertion_point(module_scope)
diff --git a/times_pb2_grpc.py b/times_pb2_grpc.py
deleted file mode 100644
index 072f38b..0000000
--- a/times_pb2_grpc.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import times_pb2 as times__pb2
-
-
-class TimesServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Create = channel.unary_unary(
-                '/times.TimesService/Create',
-                request_serializer=times__pb2.TimeRequest.SerializeToString,
-                response_deserializer=times__pb2.IdMessage.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/times.TimesService/Update',
-                request_serializer=times__pb2.TimeRequest.SerializeToString,
-                response_deserializer=times__pb2.NullResponse.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/times.TimesService/Delete',
-                request_serializer=times__pb2.IdMessage.SerializeToString,
-                response_deserializer=times__pb2.NullResponse.FromString,
-                )
-        self.Get = channel.unary_unary(
-                '/times.TimesService/Get',
-                request_serializer=times__pb2.IdMessage.SerializeToString,
-                response_deserializer=times__pb2.TimeResponse.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/times.TimesService/List',
-                request_serializer=times__pb2.ListRequest.SerializeToString,
-                response_deserializer=times__pb2.TimeList.FromString,
-                )
-        self.Rank = channel.unary_unary(
-                '/times.TimesService/Rank',
-                request_serializer=times__pb2.IdMessage.SerializeToString,
-                response_deserializer=times__pb2.RankResponse.FromString,
-                )
-
-
-class TimesServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Rank(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_TimesServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=times__pb2.TimeRequest.FromString,
-                    response_serializer=times__pb2.IdMessage.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=times__pb2.TimeRequest.FromString,
-                    response_serializer=times__pb2.NullResponse.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=times__pb2.IdMessage.FromString,
-                    response_serializer=times__pb2.NullResponse.SerializeToString,
-            ),
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=times__pb2.IdMessage.FromString,
-                    response_serializer=times__pb2.TimeResponse.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=times__pb2.ListRequest.FromString,
-                    response_serializer=times__pb2.TimeList.SerializeToString,
-            ),
-            'Rank': grpc.unary_unary_rpc_method_handler(
-                    servicer.Rank,
-                    request_deserializer=times__pb2.IdMessage.FromString,
-                    response_serializer=times__pb2.RankResponse.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'times.TimesService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class TimesService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/Create',
-            times__pb2.TimeRequest.SerializeToString,
-            times__pb2.IdMessage.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/Update',
-            times__pb2.TimeRequest.SerializeToString,
-            times__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/Delete',
-            times__pb2.IdMessage.SerializeToString,
-            times__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/Get',
-            times__pb2.IdMessage.SerializeToString,
-            times__pb2.TimeResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/List',
-            times__pb2.ListRequest.SerializeToString,
-            times__pb2.TimeList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Rank(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/times.TimesService/Rank',
-            times__pb2.IdMessage.SerializeToString,
-            times__pb2.RankResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/transactions_pb2.py b/transactions_pb2.py
deleted file mode 100644
index 4234470..0000000
--- a/transactions_pb2.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: transactions.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import users_pb2 as users__pb2
-from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12transactions.proto\x12\x0ctransactions\x1a\x0busers.proto\x1a\x1cgoogle/protobuf/struct.proto\"j\n\x11TransactionCreate\x12\x0e\n\x06UserID\x18\x01 \x01(\x03\x12\r\n\x05Value\x18\x02 \x01(\x03\x12\x0f\n\x07StateID\x18\x03 \x01(\x05\x12%\n\x04\x44\x61ta\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x94\x01\n\x11TransactionUpdate\x12\n\n\x02ID\x18\x01 \x01(\t\x12\x12\n\x05Value\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x14\n\x07StateID\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12*\n\x04\x44\x61ta\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructH\x02\x88\x01\x01\x42\x08\n\x06_ValueB\n\n\x08_StateIDB\x07\n\x05_Data\"\xa9\x01\n\x0fTransactionItem\x12\n\n\x02ID\x18\x01 \x01(\t\x12!\n\x04User\x18\x02 \x01(\x0b\x32\x13.users.UserResponse\x12\r\n\x05Value\x18\x03 \x01(\x03\x12\x0f\n\x07StateID\x18\x04 \x01(\x05\x12\x0f\n\x07\x43reated\x18\x05 \x01(\x03\x12\x0f\n\x07Updated\x18\x06 \x01(\x03\x12%\n\x04\x44\x61ta\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\"U\n\x11TransactionFilter\x12\x13\n\x06UserID\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x14\n\x07StateID\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_UserIDB\n\n\x08_StateID\"f\n\x0bListRequest\x12/\n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x1f.transactions.TransactionFilter\x12&\n\x04Page\x18\x02 \x01(\x0b\x32\x18.transactions.Pagination\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"F\n\x0fTransactionList\x12\x33\n\x0cTransactions\x18\x01 \x03(\x0b\x32\x1d.transactions.TransactionItem\"\"\n\x0f\x42\x61lanceResponse\x12\x0f\n\x07\x42\x61lance\x18\x01 \x01(\x03\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\t\"\x1f\n\rUserIdMessage\x12\x0e\n\x06UserID\x18\x01 \x01(\x03\"\x0e\n\x0cNullResponse2\xa7\x03\n\x13TransactionsService\x12\x42\n\x06\x43reate\x12\x1f.transactions.TransactionCreate\x1a\x17.transactions.IdMessage\x12\x45\n\x06Update\x12\x1f.transactions.TransactionUpdate\x1a\x1a.transactions.NullResponse\x12=\n\x06\x44\x65lete\x12\x17.transactions.IdMessage\x1a\x1a.transactions.NullResponse\x12\x45\n\x07\x42\x61lance\x12\x1b.transactions.UserIdMessage\x1a\x1d.transactions.BalanceResponse\x12=\n\x03Get\x12\x17.transactions.IdMessage\x1a\x1d.transactions.TransactionItem\x12@\n\x04List\x12\x19.transactions.ListRequest\x1a\x1d.transactions.TransactionListB5Z3git.itzana.me/strafesnet/protobufs/rpc/transactionsb\x06proto3')
-
-
-
-_TRANSACTIONCREATE = DESCRIPTOR.message_types_by_name['TransactionCreate']
-_TRANSACTIONUPDATE = DESCRIPTOR.message_types_by_name['TransactionUpdate']
-_TRANSACTIONITEM = DESCRIPTOR.message_types_by_name['TransactionItem']
-_TRANSACTIONFILTER = DESCRIPTOR.message_types_by_name['TransactionFilter']
-_LISTREQUEST = DESCRIPTOR.message_types_by_name['ListRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_TRANSACTIONLIST = DESCRIPTOR.message_types_by_name['TransactionList']
-_BALANCERESPONSE = DESCRIPTOR.message_types_by_name['BalanceResponse']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_USERIDMESSAGE = DESCRIPTOR.message_types_by_name['UserIdMessage']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-TransactionCreate = _reflection.GeneratedProtocolMessageType('TransactionCreate', (_message.Message,), {
-  'DESCRIPTOR' : _TRANSACTIONCREATE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.TransactionCreate)
-  })
-_sym_db.RegisterMessage(TransactionCreate)
-
-TransactionUpdate = _reflection.GeneratedProtocolMessageType('TransactionUpdate', (_message.Message,), {
-  'DESCRIPTOR' : _TRANSACTIONUPDATE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.TransactionUpdate)
-  })
-_sym_db.RegisterMessage(TransactionUpdate)
-
-TransactionItem = _reflection.GeneratedProtocolMessageType('TransactionItem', (_message.Message,), {
-  'DESCRIPTOR' : _TRANSACTIONITEM,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.TransactionItem)
-  })
-_sym_db.RegisterMessage(TransactionItem)
-
-TransactionFilter = _reflection.GeneratedProtocolMessageType('TransactionFilter', (_message.Message,), {
-  'DESCRIPTOR' : _TRANSACTIONFILTER,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.TransactionFilter)
-  })
-_sym_db.RegisterMessage(TransactionFilter)
-
-ListRequest = _reflection.GeneratedProtocolMessageType('ListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTREQUEST,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.ListRequest)
-  })
-_sym_db.RegisterMessage(ListRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-TransactionList = _reflection.GeneratedProtocolMessageType('TransactionList', (_message.Message,), {
-  'DESCRIPTOR' : _TRANSACTIONLIST,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.TransactionList)
-  })
-_sym_db.RegisterMessage(TransactionList)
-
-BalanceResponse = _reflection.GeneratedProtocolMessageType('BalanceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _BALANCERESPONSE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.BalanceResponse)
-  })
-_sym_db.RegisterMessage(BalanceResponse)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-UserIdMessage = _reflection.GeneratedProtocolMessageType('UserIdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _USERIDMESSAGE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.UserIdMessage)
-  })
-_sym_db.RegisterMessage(UserIdMessage)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'transactions_pb2'
-  # @@protoc_insertion_point(class_scope:transactions.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_TRANSACTIONSSERVICE = DESCRIPTOR.services_by_name['TransactionsService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z3git.itzana.me/strafesnet/protobufs/rpc/transactions'
-  _TRANSACTIONCREATE._serialized_start=79
-  _TRANSACTIONCREATE._serialized_end=185
-  _TRANSACTIONUPDATE._serialized_start=188
-  _TRANSACTIONUPDATE._serialized_end=336
-  _TRANSACTIONITEM._serialized_start=339
-  _TRANSACTIONITEM._serialized_end=508
-  _TRANSACTIONFILTER._serialized_start=510
-  _TRANSACTIONFILTER._serialized_end=595
-  _LISTREQUEST._serialized_start=597
-  _LISTREQUEST._serialized_end=699
-  _PAGINATION._serialized_start=701
-  _PAGINATION._serialized_end=743
-  _TRANSACTIONLIST._serialized_start=745
-  _TRANSACTIONLIST._serialized_end=815
-  _BALANCERESPONSE._serialized_start=817
-  _BALANCERESPONSE._serialized_end=851
-  _IDMESSAGE._serialized_start=853
-  _IDMESSAGE._serialized_end=876
-  _USERIDMESSAGE._serialized_start=878
-  _USERIDMESSAGE._serialized_end=909
-  _NULLRESPONSE._serialized_start=911
-  _NULLRESPONSE._serialized_end=925
-  _TRANSACTIONSSERVICE._serialized_start=928
-  _TRANSACTIONSSERVICE._serialized_end=1351
-# @@protoc_insertion_point(module_scope)
diff --git a/transactions_pb2_grpc.py b/transactions_pb2_grpc.py
deleted file mode 100644
index 24d4efa..0000000
--- a/transactions_pb2_grpc.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import transactions_pb2 as transactions__pb2
-
-
-class TransactionsServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Create = channel.unary_unary(
-                '/transactions.TransactionsService/Create',
-                request_serializer=transactions__pb2.TransactionCreate.SerializeToString,
-                response_deserializer=transactions__pb2.IdMessage.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/transactions.TransactionsService/Update',
-                request_serializer=transactions__pb2.TransactionUpdate.SerializeToString,
-                response_deserializer=transactions__pb2.NullResponse.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/transactions.TransactionsService/Delete',
-                request_serializer=transactions__pb2.IdMessage.SerializeToString,
-                response_deserializer=transactions__pb2.NullResponse.FromString,
-                )
-        self.Balance = channel.unary_unary(
-                '/transactions.TransactionsService/Balance',
-                request_serializer=transactions__pb2.UserIdMessage.SerializeToString,
-                response_deserializer=transactions__pb2.BalanceResponse.FromString,
-                )
-        self.Get = channel.unary_unary(
-                '/transactions.TransactionsService/Get',
-                request_serializer=transactions__pb2.IdMessage.SerializeToString,
-                response_deserializer=transactions__pb2.TransactionItem.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/transactions.TransactionsService/List',
-                request_serializer=transactions__pb2.ListRequest.SerializeToString,
-                response_deserializer=transactions__pb2.TransactionList.FromString,
-                )
-
-
-class TransactionsServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Balance(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_TransactionsServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=transactions__pb2.TransactionCreate.FromString,
-                    response_serializer=transactions__pb2.IdMessage.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=transactions__pb2.TransactionUpdate.FromString,
-                    response_serializer=transactions__pb2.NullResponse.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=transactions__pb2.IdMessage.FromString,
-                    response_serializer=transactions__pb2.NullResponse.SerializeToString,
-            ),
-            'Balance': grpc.unary_unary_rpc_method_handler(
-                    servicer.Balance,
-                    request_deserializer=transactions__pb2.UserIdMessage.FromString,
-                    response_serializer=transactions__pb2.BalanceResponse.SerializeToString,
-            ),
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=transactions__pb2.IdMessage.FromString,
-                    response_serializer=transactions__pb2.TransactionItem.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=transactions__pb2.ListRequest.FromString,
-                    response_serializer=transactions__pb2.TransactionList.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'transactions.TransactionsService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class TransactionsService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/Create',
-            transactions__pb2.TransactionCreate.SerializeToString,
-            transactions__pb2.IdMessage.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/Update',
-            transactions__pb2.TransactionUpdate.SerializeToString,
-            transactions__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/Delete',
-            transactions__pb2.IdMessage.SerializeToString,
-            transactions__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Balance(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/Balance',
-            transactions__pb2.UserIdMessage.SerializeToString,
-            transactions__pb2.BalanceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/Get',
-            transactions__pb2.IdMessage.SerializeToString,
-            transactions__pb2.TransactionItem.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/transactions.TransactionsService/List',
-            transactions__pb2.ListRequest.SerializeToString,
-            transactions__pb2.TransactionList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/users_pb2.py b/users_pb2.py
deleted file mode 100644
index c41b4e5..0000000
--- a/users_pb2.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: users.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0busers.proto\x12\x05users\"\x14\n\x06IdList\x12\n\n\x02ID\x18\x01 \x03(\x03\"\x17\n\tIdMessage\x12\n\n\x02ID\x18\x01 \x01(\x03\"=\n\x0cUserResponse\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x10\n\x08Username\x18\x02 \x01(\t\x12\x0f\n\x07StateID\x18\x03 \x01(\x05\"_\n\x0bUserRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x15\n\x08Username\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07StateID\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_UsernameB\n\n\x08_StateID\"j\n\nUserFilter\x12\x0f\n\x02ID\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x15\n\x08Username\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07StateID\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x05\n\x03_IDB\x0b\n\t_UsernameB\n\n\x08_StateID\".\n\x08UserList\x12\"\n\x05Users\x18\x01 \x03(\x0b\x32\x13.users.UserResponse\"Q\n\x0bListRequest\x12!\n\x06\x46ilter\x18\x01 \x01(\x0b\x32\x11.users.UserFilter\x12\x1f\n\x04Page\x18\x02 \x01(\x0b\x32\x11.users.Pagination\"*\n\nPagination\x12\x0c\n\x04Size\x18\x01 \x01(\x05\x12\x0e\n\x06Number\x18\x02 \x01(\x05\"\x0e\n\x0cNullResponse2\xa8\x02\n\x0cUsersService\x12,\n\x03Get\x12\x10.users.IdMessage\x1a\x13.users.UserResponse\x12)\n\x07GetList\x12\r.users.IdList\x1a\x0f.users.UserList\x12\x31\n\x06Update\x12\x12.users.UserRequest\x1a\x13.users.NullResponse\x12.\n\x06\x43reate\x12\x12.users.UserRequest\x1a\x10.users.IdMessage\x12/\n\x06\x44\x65lete\x12\x10.users.IdMessage\x1a\x13.users.NullResponse\x12+\n\x04List\x12\x12.users.ListRequest\x1a\x0f.users.UserListB\x0fZ\rpkg/rpc/usersb\x06proto3')
-
-
-
-_IDLIST = DESCRIPTOR.message_types_by_name['IdList']
-_IDMESSAGE = DESCRIPTOR.message_types_by_name['IdMessage']
-_USERRESPONSE = DESCRIPTOR.message_types_by_name['UserResponse']
-_USERREQUEST = DESCRIPTOR.message_types_by_name['UserRequest']
-_USERFILTER = DESCRIPTOR.message_types_by_name['UserFilter']
-_USERLIST = DESCRIPTOR.message_types_by_name['UserList']
-_LISTREQUEST = DESCRIPTOR.message_types_by_name['ListRequest']
-_PAGINATION = DESCRIPTOR.message_types_by_name['Pagination']
-_NULLRESPONSE = DESCRIPTOR.message_types_by_name['NullResponse']
-IdList = _reflection.GeneratedProtocolMessageType('IdList', (_message.Message,), {
-  'DESCRIPTOR' : _IDLIST,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.IdList)
-  })
-_sym_db.RegisterMessage(IdList)
-
-IdMessage = _reflection.GeneratedProtocolMessageType('IdMessage', (_message.Message,), {
-  'DESCRIPTOR' : _IDMESSAGE,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.IdMessage)
-  })
-_sym_db.RegisterMessage(IdMessage)
-
-UserResponse = _reflection.GeneratedProtocolMessageType('UserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _USERRESPONSE,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.UserResponse)
-  })
-_sym_db.RegisterMessage(UserResponse)
-
-UserRequest = _reflection.GeneratedProtocolMessageType('UserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _USERREQUEST,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.UserRequest)
-  })
-_sym_db.RegisterMessage(UserRequest)
-
-UserFilter = _reflection.GeneratedProtocolMessageType('UserFilter', (_message.Message,), {
-  'DESCRIPTOR' : _USERFILTER,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.UserFilter)
-  })
-_sym_db.RegisterMessage(UserFilter)
-
-UserList = _reflection.GeneratedProtocolMessageType('UserList', (_message.Message,), {
-  'DESCRIPTOR' : _USERLIST,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.UserList)
-  })
-_sym_db.RegisterMessage(UserList)
-
-ListRequest = _reflection.GeneratedProtocolMessageType('ListRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTREQUEST,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.ListRequest)
-  })
-_sym_db.RegisterMessage(ListRequest)
-
-Pagination = _reflection.GeneratedProtocolMessageType('Pagination', (_message.Message,), {
-  'DESCRIPTOR' : _PAGINATION,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.Pagination)
-  })
-_sym_db.RegisterMessage(Pagination)
-
-NullResponse = _reflection.GeneratedProtocolMessageType('NullResponse', (_message.Message,), {
-  'DESCRIPTOR' : _NULLRESPONSE,
-  '__module__' : 'users_pb2'
-  # @@protoc_insertion_point(class_scope:users.NullResponse)
-  })
-_sym_db.RegisterMessage(NullResponse)
-
-_USERSSERVICE = DESCRIPTOR.services_by_name['UsersService']
-if _descriptor._USE_C_DESCRIPTORS == False:
-
-  DESCRIPTOR._options = None
-  DESCRIPTOR._serialized_options = b'Z\rpkg/rpc/users'
-  _IDLIST._serialized_start=22
-  _IDLIST._serialized_end=42
-  _IDMESSAGE._serialized_start=44
-  _IDMESSAGE._serialized_end=67
-  _USERRESPONSE._serialized_start=69
-  _USERRESPONSE._serialized_end=130
-  _USERREQUEST._serialized_start=132
-  _USERREQUEST._serialized_end=227
-  _USERFILTER._serialized_start=229
-  _USERFILTER._serialized_end=335
-  _USERLIST._serialized_start=337
-  _USERLIST._serialized_end=383
-  _LISTREQUEST._serialized_start=385
-  _LISTREQUEST._serialized_end=466
-  _PAGINATION._serialized_start=468
-  _PAGINATION._serialized_end=510
-  _NULLRESPONSE._serialized_start=512
-  _NULLRESPONSE._serialized_end=526
-  _USERSSERVICE._serialized_start=529
-  _USERSSERVICE._serialized_end=825
-# @@protoc_insertion_point(module_scope)
diff --git a/users_pb2_grpc.py b/users_pb2_grpc.py
deleted file mode 100644
index 0b55ec2..0000000
--- a/users_pb2_grpc.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-import users_pb2 as users__pb2
-
-
-class UsersServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.Get = channel.unary_unary(
-                '/users.UsersService/Get',
-                request_serializer=users__pb2.IdMessage.SerializeToString,
-                response_deserializer=users__pb2.UserResponse.FromString,
-                )
-        self.GetList = channel.unary_unary(
-                '/users.UsersService/GetList',
-                request_serializer=users__pb2.IdList.SerializeToString,
-                response_deserializer=users__pb2.UserList.FromString,
-                )
-        self.Update = channel.unary_unary(
-                '/users.UsersService/Update',
-                request_serializer=users__pb2.UserRequest.SerializeToString,
-                response_deserializer=users__pb2.NullResponse.FromString,
-                )
-        self.Create = channel.unary_unary(
-                '/users.UsersService/Create',
-                request_serializer=users__pb2.UserRequest.SerializeToString,
-                response_deserializer=users__pb2.IdMessage.FromString,
-                )
-        self.Delete = channel.unary_unary(
-                '/users.UsersService/Delete',
-                request_serializer=users__pb2.IdMessage.SerializeToString,
-                response_deserializer=users__pb2.NullResponse.FromString,
-                )
-        self.List = channel.unary_unary(
-                '/users.UsersService/List',
-                request_serializer=users__pb2.ListRequest.SerializeToString,
-                response_deserializer=users__pb2.UserList.FromString,
-                )
-
-
-class UsersServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def Get(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetList(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Update(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Create(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def Delete(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def List(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_UsersServiceServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'Get': grpc.unary_unary_rpc_method_handler(
-                    servicer.Get,
-                    request_deserializer=users__pb2.IdMessage.FromString,
-                    response_serializer=users__pb2.UserResponse.SerializeToString,
-            ),
-            'GetList': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetList,
-                    request_deserializer=users__pb2.IdList.FromString,
-                    response_serializer=users__pb2.UserList.SerializeToString,
-            ),
-            'Update': grpc.unary_unary_rpc_method_handler(
-                    servicer.Update,
-                    request_deserializer=users__pb2.UserRequest.FromString,
-                    response_serializer=users__pb2.NullResponse.SerializeToString,
-            ),
-            'Create': grpc.unary_unary_rpc_method_handler(
-                    servicer.Create,
-                    request_deserializer=users__pb2.UserRequest.FromString,
-                    response_serializer=users__pb2.IdMessage.SerializeToString,
-            ),
-            'Delete': grpc.unary_unary_rpc_method_handler(
-                    servicer.Delete,
-                    request_deserializer=users__pb2.IdMessage.FromString,
-                    response_serializer=users__pb2.NullResponse.SerializeToString,
-            ),
-            'List': grpc.unary_unary_rpc_method_handler(
-                    servicer.List,
-                    request_deserializer=users__pb2.ListRequest.FromString,
-                    response_serializer=users__pb2.UserList.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'users.UsersService', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class UsersService(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def Get(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/Get',
-            users__pb2.IdMessage.SerializeToString,
-            users__pb2.UserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetList(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/GetList',
-            users__pb2.IdList.SerializeToString,
-            users__pb2.UserList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Update(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/Update',
-            users__pb2.UserRequest.SerializeToString,
-            users__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Create(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/Create',
-            users__pb2.UserRequest.SerializeToString,
-            users__pb2.IdMessage.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def Delete(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/Delete',
-            users__pb2.IdMessage.SerializeToString,
-            users__pb2.NullResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def List(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/users.UsersService/List',
-            users__pb2.ListRequest.SerializeToString,
-            users__pb2.UserList.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)