implemented a few more things