Finally wrangled with polymorphism problems with smart pointers. AudioComponent implemented.