improved style and functionality