a rewrite of the spartan framework with modularity and even more separation of concerns