added some Idea for complicated Logic