Refactored by adding sunshine model