probably should restrict A