support arbitrary size; bump version to 3.0.0