a* implemented