save
first revise
using mlp