bug fix; now feature-complete