some strange logic...