Getting closer, still not complete