refactor mode and photo shooting