all features implemented
rm cruft