add auto testing using guard