refactored camera action