bit more impl (some transitional) + clean up