UPD: Re-factoring