add #after_write hook and tune DSL
start changing DSL