Camera & Canvas refactoring