converted to multi-platform (linux is supported now)