proper logic