composite design pattern finished git status! Have to test it