add some better comments