lots of changes... bleh