introduce interface for blocks
refactored _prepareForm and fixed several bugs