iOS and osx base implementations
adding tests