api methods almost complete