works with swift-1.8.0