use empty to distinguish rather than isset