Add cross platform implementation for MAC OS, Add mac demo project