WARNING: This code is under construction, may not build, and is unstable!