added bunches of stuff