extracted a bunch of interfaces