creates lotd of functions that dont yet interact with eachother yet