speccing more stuff out, going to leave the rest of the spec until views are finalized