encapsulated video player into shared component