feature : set default status with before callback
feature : new define interface

closes #5