why are there "soft" declares used here all over? These are BSD functions, available since 10.0, I believe. Or aren't they?