mac osx implementation