updated for specific platforms