Added basic concept of interface; fixes #2