Implement using gen-class