Added the concept of states which i'm not sure i like... Also validation
for streaming audio and if available video through the player.