reorganized follow spec