add: classes for components
query.py now uses new components classes