abstract fun accept(): Unit
abstract fun accept(dependency: String, callback: () -> Unit): Unit
abstract fun accept(dependencies: Array<String>, callback: (updated: Array<String>) -> Unit): Unit