allow passing `to` to the constructor

makes it easier for low level stuff where you only really want to
be calling `frame()`