update for #22 & #21