modified a* algo