Большая переделка функционала