First draft of non-stable version.