separate content and logic (script)