I'm not particularly proud of this call but new else/if make it even worse. Any better idea?