DRY up projects api