refactored news class