cleanup, add specs, tweak