implemented #25
implemented #24