First try to support multi-os