A new programming language $MFL^{3}$ is described, which, while low level, combines both message passing and shared memory models. We examine both the programming style and implementation issues of such a language. The programming style splits the computation into a computation thread (one process per processor) and several server threads. The computation thread (which performs the bulk of the computation) is deterministic, while all of the non-deterministic code is in the server threads. Also described are several ways of making programming in message passing languages less tedious and more modular, in terms of compilation techniques, runtime structures and a new programming structure.