Не идеален, но не плох.

читать дальше