added most of an a* project