more work on new functions