add base implementation of gui