refactor. first demo