implemented part of API functionality