functionality pretty well worked out, basic style applied