First attempt at video calling plus miscellaneous refactorings.