refactored video struct