add support of various platforms