This does the complete operation

Not yet commented.