Updated with vanilla JS structure
Outlined basic structure and added a few properties