Finished new features. Ready for merging.

Hopefully it looks good!