Refactor to use EIEIO (WIP).