updated for platform choose