behaviour matches unit tests