design getting sloppy, memory getting leaky, but closer to functionality