combine duplicated functionality in site