Как подобное решается? Общее решение.