step 8 and re-organized classes