improved expand function