Logic methods