completed API component