refactored design to include views-like...