puzzle refactoring & diamond image revised