fully tested, no feature functions give erros