documented everything but the UI