user points first pass - resolves #17, resolves #18, resolves #20, resolves #21