suited to swift 1.0