refactor shiro