added many more features