ah, this is a bit cleaner