we won't use core.logic yet