refactoring and code cleanup + fix watch view behavior