some experimental functions and fixes