several refinements in desing;