using guard again, potentially to automate testing