workshop refactor