added before/after callbacks support, updated read me and description