added a lot of things, sharing