methods refactored with return values