restructured for clean layering
cleanup