Lots of changes, need to make this public