structured for gradle