Improvement and prelude for #5 and #6