maps works, but need improvement