fix and add some helper