SoPlex — the Sequential object-oriented simPlex