some portability issues