behavior refactoring: api complete.