Added a lot more features