backend basically done, w/a few design issues