Initial work; lots of interfaces.