organized code into some groups