random changes, added shell module but doesnt quite work yet