refactory format