Lots of changes, not working yet though.