Big changes, lots of new functions