Since this series of init methods allocs and returns new instances, shouldn't they be named `new ...` instead of `init ...`?