refactored, going to try campoy/marshian codes