rewrite with tests and no character studio