serious serious refactor