basic initialization and data stuff pretty much in