Flesh out prototype (but needs cleanup)