adding a lot of things here