it would be better to make it platform independent