add portable version