add weights keyword argument; let extents be fractions