clean code, enhance recording interface