UI refactor + add setup and loop