don't do lockset unless needed
enumerated stuff
refactor