Adds lots of funcationality