implemented more APIs