added a lot of new features