might need to handle algrebra between non-aligned outputs