modularising camera snap