finished mirror, refactor draft