fix errors, add test