better attempt at #107