server side works, with only a couple minor issues (epsilon related)