some solutions and basic ideas