platform-dependent behavior