synced with zip-master