update, add platform implementations