protocal buffers are weird. will remove 'documents' in next commit.