non-dependent functions