added a lot of things and code helpers