Take care of issue 630

Should fix #630 implementing the block user feature.
Some slight design modification.