added portability