restructuring + documentation