properly check for fn