Major refactoring plus solving problem when sometimes user image not showing