added a lot of code for ability 2