shotop: working grape api solution; needs refactoring