implemented a whole lot of new things