I think maybe `length` should be public?