could this not be a simple `map` call?