Big work with interface

lots of small changes