add all the necessary stuff