First draft implementation