keep DRY, hopefully...