Refactored to use generic types

- Created image class
- Created text class
- Templates render generic types
Refactored store to use id attr on media classes