setting up necessary stuff