Тут можно было использовать шаблон.