A few tweaks and modifications
Refactored zoom behavior into a separate component