modified all fns