#32: refactoring