implementations for zoom