* reduced code duplication