mortal-interface and some refactoring