Выполненное задание.

Конечно не идеал, но выполняет поставленные задачи. Если необходимо, то можно доработать.