added a lot of cool stuff