add interface files and documentation
revert some changes