make api more high level