Big refactor; about to start General Ledger work