better attempt at #2