with tests split out