Refactored, separated demo