prepare for cross platform