refactored to respect naming conventions