Fairly stable; needs to be cleaned up