Initial commit. Some first basic types and interfaces.