/* class functions */
        // gets data from db List<Dic<string, object>> and sets it to private variable
        private async void SetData()
        {
            // dummy text for user
            messageHeader.Text = "Loading messages, please wait!";
            // change mouse cursor to load
            Mouse.OverrideCursor = Cursors.Wait;
            try
            {
                FirebaseHandler   fbh = new FirebaseHandler();
                CollectionHandler collectionHandler = new CollectionHandler();
                this.data = await fbh.GetCollection(collectionHandler.GetMessageCollection());

                //release mouse cursor to normal
                Mouse.OverrideCursor = null;
                if (this.data[0] != null)
                {
                    // insert messages to "DOM" or ui
                    this.InsertToDom(this.data[0]);
                }
            }
            catch (Exception e)
            {
                messageHeader.Text = "Error occured: " + e.Message;
            }
        }
        // remove button
        private async void RemoveMessage(object sender, RoutedEventArgs e)
        {
            MessageBoxResult wannaRemove = MessageBox.Show("Are you sure you want to remove?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (wannaRemove == MessageBoxResult.Yes)
            {
                // collection does get removed if empty, prevent that
                if (this.data.Count > 1)
                {
                    FirebaseHandler   firebaseHandler = new FirebaseHandler();
                    CollectionHandler collectionH     = new CollectionHandler();
                    string[]          response        = await firebaseHandler.DeleteFromDb(this.currentMessage, collectionH.GetMessageCollection());

                    if (response[0].Equals("200"))
                    {
                        int index = this.FindIndex(this.currentMessage);
                        try
                        {
                            this.data.RemoveAt(index);
                            this.InsertToDom(this.data[0]);
                            _ = MessageBox.Show("Document deleted!", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception ed)
                        {
                            _ = MessageBox.Show(ed.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    //error from firebase
                    else
                    {
                        _ = MessageBox.Show(response[1], "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                // cannot remove only document
                else
                {
                    _ = MessageBox.Show("Nothing removed! Collection length must be at least one.", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            // cancelled remove
            else
            {
                _ = MessageBox.Show("Nothing removed!", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }