reorganized spec to match impl method order