real mixed bag. just keep my place for now before refactor