Refactor part 1 - using error codes and breakout ProjectorBase class