Added support for basic use cases, non-functioning recursive version