tighten up private vars
clean up closure
privatize image setter
add some assertions