duplication removed(DRY)