refactor video class