1. re-organized classes