add extend method; add desktop plugin;