Media widget

Based on #1. Work in progress...