Implement zoom

@jbeezley Please review this branch.