varous af functions