more customizable blockform implementation