WIP mediacore
refactor mediacore into its own module