fix mem leak, add test