osx implemented, linux partially