всё это неплохо было бы запихнуть в helper