some refinment