Added a* implementation from Eric Lippert.