basically done---just need to rearrange module structure
rearrange lib