refactory author