I am going to use some tricky methods