refactored for consistency